Как вернуть данные в родительское представление при использовании UINavigationController и кнопки «Назад» по умолчанию? - PullRequest
5 голосов
/ 05 апреля 2011

Справочная информация. Таким образом, с точки зрения подхода на высоком уровне, мне кажется, что:

  1. Сохраняйте / сохраняйте настройки по мере прохождения через цепочку уровней UINavigationController - поэтому при первоначальном изменениинастройки или создание настроек, потребуется набор значений по умолчанию, т. е. в любой момент времени, если приложение умирает, настройки будут действительны
  2. сохранять изменения по ходу работы и после возвращенияиз дерева экранов UINavigationController (со всеми установленными настройками) будет точка, в которой вы можете сохранить

. Этот вопрос посвящен варианту 2, который я пытался реализовать.

План. Хотя в типе настроек UINavigationController я собирался передать существующие (или стандартные) сведения для одного раздела настроек из родительского представления в дочернее представление, когда дочернее представление помещается в стек.Проблема заключается в том, что, когда эти данные обновляются, и при условии, что я хочу придерживаться кнопки «Назад» по умолчанию, кажется, что нет способа перехватить кнопку «Назад» по умолчанию, поэтому, когда я готов вытащить ребенка из стекаперед этим я позвоню делегату, который передаст последние настройки родителю.

ВОПРОС - Как передать обновленные данные из дочернего контроллера обратно в родительский контроллер при использовании UINavigationController и желании придерживаться кнопки «Назад» по умолчанию (с левой стрелкой на нем).

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

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

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

Другой вариант - добавить кнопку «Сохранить» или «Готово», которая приведет к сохранению, в противном случае кнопка «Назад» служит в качестве кнопки отмены. С точки зрения пользовательского интерфейса, если у вас нет кнопки «сохранить», пользователь, вероятно, предположит, что настройки изменились мгновенно.

...