Обычно после настройки пользовательской ячейки я сохраняю NSIndexPath ячейки в заголовке кнопки для состояния UIControlStateApplication.
В вашем tableView: cellForRowAtIndexPath: метод, при настройке ячейки:
[theButton setTitle:(NSString *)indexPath forState:UIControlStateApplication];
Затем в вашем действии кнопки:
- (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]);
}
Я не очень доволен этим. Если у кого-то есть более чистый способ сделать это, я хотел бы услышать об этом.