Сохранение данных из пользовательского UITableViewCell - PullRequest
2 голосов
/ 30 мая 2011
  1. У меня есть экран редактирования, который состоит из одного огромного UITableView.

    1. Каждая ячейка в таблице является пользовательской UITableViewCell, состоящей из UITextField

    2. Я могу загрузить таблицу,прокрутите и введите информацию.Однако при прокрутке ячейки таблицы теряют введенные данные, и я понимаю, почему это происходит.

    3. Я понимаю, что мне нужно сохранить данные, как только пользователь закончит ввод данных с помощью textFieldDidEndEditing метод.

Вопрос: Я хочу сохранить данные, введенные в пользовательский объект, который доступен в ViewController -как я могу получить доступ к этому с UITableViewCell?Кроме того, как мне определить строку и положение ячейки таблицы, чтобы на основе позиции я мог заполнить определенный атрибут в объекте

Вопрос: Правильно ли я делаю это??Или есть лучший способ сделать это?

1 Ответ

1 голос
/ 30 мая 2011

Поскольку вы упоминаете только одно текстовое поле, мы можем обойтись объектом NSMutableArray, содержащим строки для каждой ячейки. Вам нужно будет заполнить массив пустыми строками и использовать эту информацию для заполнения текстового поля. Это будет что-то вроде

textField.text = [textFieldStrings objectAtIndex:indexPath.row];

Поскольку вы делаете это программно в контроллере представления, вам придется установить контроллер представления в качестве вашего делегата текстового представления. Вы можете сделать

- (void)textFieldDidEndEditing:(UITextField *)textField {
    UITableViewCell *cell = (UITableViewCell*)textField.superview;

    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

    ... Since you've the index path, you can map it to an array.

    [textFieldStrings replaceObjectAtIndexPath:indexPath withObject:textField.text];
}

Это было бы основной идеей. Начните с изменяемого массива пустых строк и изменяйте их каждый раз, когда текстовое поле обновляется, заменяя оригинальный текст новым текстом. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...