Como obter um UITableViewCell de uma das suas subvisualizações

eu tenho umUITableView com umUITextField em cada um dosUITableViewCells. Eu tenho um método no meu ViewController que lida com o evento "Did End On Exit" para o campo de texto de cada célula e o que eu quero ser capaz de fazer é atualizar os dados do meu modelo com o novo texto.

O que eu tenho atualmente é:

- (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;
}

Claro que fazendofield.superview.superview.superview funciona, mas parece tão hacky. Existe uma maneira mais elegante? Se eu definir a tag doUITextField aoindexPath.row da célula sua em emcellForRowAtIndexPath essa tag estará sempre correta mesmo depois de inserir e excluir linhas?

Para aqueles que prestam muita atenção, você pode pensar que eu tenho um.superview muitos lá, e para iOS6, você estaria certo. No entanto, no iOS7, há uma visão extra (o NDA me impede de elaborar) na hierarquia entre a visualização de conteúdo da célula e a própria célula. Isso ilustra precisamente porque fazer a coisa do superview é um pouco hacky, já que depende de saber comoUITableViewCell é implementado e pode quebrar com atualizações para o sistema operacional.

questionAnswers(4)

yourAnswerToTheQuestion