Я думаю, что нашел способ сделать хорошую работу ...
- Создать
@protocol
для этой ячейки
// EditingCellDelegate.h
@protocol EditingCellDelegate
@optional
- (void)textLabelEditDidEnd:(UITextField *)textField;
@end
- Добавить ivar в
EditingTableViewCell
класс
// EditingTableViewCell.h
...
@property (nonatomic, assign) id <EditingCellDelegate> delegate;
Таким образом, я могу передать сообщение UITableViewController, который соответствует протоколу этой ячейки. Конечно, вы должны проверить этот класс conformsToProtocol
и respondsToSelector
. Теперь я могу это назвать. Примерно так:
//EditingTableViewCell.m
- (IBAction)editDone:(id)sender {
if([[self delegate] respondsToSelector:@selector(textLabelEditDidEnd:)]) {
[[self delegate] textLabelEditDidEnd:(UITextField *)sender];
}
}