2008-12-08 3 views
3

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

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

ответ

4

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

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

Смежные вопросы