How to get UITableviewcell(custom cell) values on click on button

ios, objective-c, uitableview

Solution

I think you can directly access the `btn` and `textField2` properties of your cell, once you get it from `cellForRowAtIndexPath:`. Assuming you are creating and returning instance of `CustomCell`, just typecast it to `CustomCell` instead of `UITableviewCell`. See modified code below

-(IBAction)submitBtnAction:(UIControl *)sender
{
        UIButton *button = (UIButton*)sender;
        NSIndexPath *myIP = [NSIndexPath indexPathForRow:sender.tag inSection:0];
        //Type cast it to CustomCell
        CustomCell *cell = (CustomCell*)[tblView1 cellForRowAtIndexPath:myIP];
        UIButton *btn = cell.btn;
        NSLog(@"btn text %@, tag %d",btn.titleLabel.text,btn.tag);

        UITextField *tf = cell.textField2;
        NSLog(@"tf text %@, tag %d",tf.text,btn.tag);
}

Hope that helps!

Problem

I have a `UITableViewCell`(Custom cell) in which i am creating some buttons and textfields and assigning tags to the buttons and textfields. But i couldn't get button title and textfield values on click on button. In `cellForRowAtIndexPath` ``` `[((CustomCell *) cell).btn setTag:rowTag]; [((CustomCell *) cell).textField2 setTag:rowTag+1];` -(IBAction)submitBtnAction:(UIControl *)sender { for (int i=0; i<[self->_dataArray count]; i++) { NSIndexPath *myIP = [NSIndexPath indexPathForRow:i inSection:0]; NSLog(@"myIP.row %d",myIP.row); UITableViewCell *cell = [tblView1 cellForRowAtIndexPath:myIP]; NSLog(@"tag %d",cell.tag); UIButton *btn = (UIButton *)[cell.contentView viewWithTag:i]; NSLog(@"btn text %@, tag %d",btn.titleLabel.text,btn.tag); UITextField *tf = (UITextField *)[cell.contentView viewWithTag:i+1]; NSLog(@"tf text %@, tag %d",tf.text,btn.tag); } } ``` I'm getting error like this ``` -[UITableViewCellContentView titleLabel]: unrecognized selector sent to instance 0x71844e0 2013-07-17 13:48:29.998 Text[1271:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCellContentView titleLabel]: unrecognized selector sent to instance 0x71844e0' ```

Original source