C.Johns
C.Johns

Reputation: 10245

How to pass a NSString from a uitableviewcell to an NSObject

I am trying to pass the text lable that is in the uitableviewcell I have created but I am not sure of the parameters that are needed in order to do this.

I have an NSObject with a method that has an NSString object as a parameter, this is where I would like to pass the information from my uitableviewcell label too...

I have #imported the .h file and set up the object inside the views tableViews:didSelectRowAtIndexPath method but I am just not sure how to pass it the text from the lable, this is what I have tried but I have a compatibility warning..

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {        
        //initalize object to hold search parameters
        VehicleSearchObject *vehicleSearchObject = [[VehicleSearchObject alloc] init];


        [self.navigationController popViewControllerAnimated:YES]; //pops current view from the navigatoin stack

        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

        //--- this if block allows only one cell selection at a time and is passing the text in the cells label back to the object
        if (oldCheckedData == nil) { // No selection made yet
            oldCheckedData = indexPath;
            [cell setAccessoryType:UITableViewCellAccessoryCheckmark];
            [vehicleSearchObject GetManufacturers:[[cell textLabel] objectAtIndex:[indexPath row]] // This is where I try to pass the text back but not sure how to do it..

        }
        else {
            UITableViewCell *formerSelectedcell = [tableView cellForRowAtIndexPath:oldCheckedData]; // finding the already selected cell
            [formerSelectedcell setAccessoryType:UITableViewCellAccessoryNone];

            [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; // 'select' the new cell
            oldCheckedData=indexPath;
        }   
    }

Upvotes: 0

Views: 382

Answers (3)

Lunayo
Lunayo

Reputation: 538

[[cell textLabel] setText:[vehicleSearchObject GetManufacturers:[[cell textLabel] text]];

Upvotes: 0

gamozzii
gamozzii

Reputation: 3921

You can reference the cell label text by simply doing:

cell.textLabel.text

i.e.

[vehicleSearchObject GetManufacturers:cell.textLabel.text];

Upvotes: 1

EmptyStack
EmptyStack

Reputation: 51374

You have to do this.

[vehicleSearchObject GetManufacturers:cell.textLabel.text];

Upvotes: 1

Related Questions