Дочерний контроллер обновляет метку для ячейки в представлении родительской таблицы - PullRequest
3 голосов
/ 08 декабря 2008

У меня есть навигационное представление с ячейкой, в которой есть что-то простое, например, Дата рождения. При щелчке по этой конкретной строке новый контроллер отображается с помощью UIDatePicker. Как только будет выбрана новая дата, я думаю, что мне нужно что-то сделать в viewWillDisappear: для значения UITextField этой конкретной ячейки. Какой лучший способ для меня это сделать? Нужно ли передавать ссылку на indexPath ячейки в childController, устанавливать его там и перезагружать данные tableView?

Еще один хитрый трюк: скажем, мой источник данных для tableView - это словарь с парами ключ / значение. Когда я вызываю reloadData для tableView, он перечитывает этот словарь, не принимая во внимание изменение даты, сделанное моим дочерним контроллером.

1 Ответ

4 голосов
/ 08 декабря 2008

Во-первых, лучшее место для перезагрузки данных - это viewWillAppear: метод этого конкретного UIViewController. Таким образом, вам не нужно беспокоиться о ссылках на таблицу в других контроллерах.

Во-вторых, если я не ошибаюсь, я думаю, вам нужно освежить в памяти объекты. Пока то, что вы изменяете в редактирующем (дочернем) контроллере, является ссылкой на тот же объект, который использует табличный (родительский) контроллер, данные будут синхронизироваться. Если, с другой стороны, вы перезагружаете данные (скажем, из файла) для каждого контроллера, я бы посмотрел, как работает архитектура вашего приложения. Объекты - твой друг. Воспользуйтесь этим.

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