Question

I am a newbie.

I have a custom UITableViewCell with 3 items:

a UILabel a UITextField and a UIButton

My question is, how do I know from which cell the button was clicked or textField was edited ?

Is there a way to track them?

Thanks for any replies.

Was it helpful?

Solution

What I usually do is after configuring the custom cell, I save the NSIndexPath of the cell in the title of the button for the state UIControlStateApplication.

In your tableView: cellForRowAtIndexPath: method, when configuring the cell:

[theButton setTitle:(NSString *)indexPath forState:UIControlStateApplication];

Then, in your button action:


- (IBAction) buttonWasClicked:(UIButton *) senderButton {
    NSIndexPath *indexPath;

    indexPath = (NSIndexPath *)[senderButton titleForState:UIControlStateApplication];

    NSLog(@"Sender button was clicked in cell at NSIndexPath section: %d row: %d ", [indexPath section], [indexPath row]);
}

I am not really happy with this way. If someone has a cleaner way to do it, I would love to hear about it.

OTHER TIPS

If you only have one section you can store the indexPath.row in the button.tag and retrieve it in the action that is triggered by that button.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top