Как получить UITableViewCell из одного из его подпредставлений

у меня естьUITableView сUITextField в каждом изUITableViewCells, У меня есть метод в моем ViewController, который обрабатывает событие «Сделал конец при выходе» для текстового поля каждой ячейки, и я хочу иметь возможность обновлять данные моей модели новым текстом.

Что у меня сейчас есть:

- (IBAction)itemFinishedEditing:(id)sender {
    [sender resignFirstResponder];

    UITextField *field = sender;
    UITableViewCell *cell = (UITableViewCell *) field.superview.superview.superview;

    NSIndexPath *indexPath = [_tableView indexPathForCell:cell];

    _list.items[indexPath.row] = field.text;
}

Конечно делатьfield.superview.superview.superview работает, но это кажется таким хакерским. Есть ли более элегантный способ? Если я установлю тегUITextField кindexPath.row клетки его в вcellForRowAtIndexPath будет ли этот тег всегда корректным даже после вставки и удаления строк?

Для тех, кто уделяет пристальное внимание, вы можете подумать, что у меня есть один.superview там слишком много, и для iOS6 вы были бы правы. Тем не менее, в iOS7 есть дополнительное представление (NDA мешает разработке форм) в иерархии между представлением содержимого ячейки и самой ячейкой. Это точно иллюстрирует, почему делать супервизию немного глупо, так как это зависит от того, какUITableViewCell реализован и может порваться с обновлениями ОС.