Как сцена А, которая переходит к сцене Б, может узнать, когда пользователь закончил со сценой Б и сцена А отображается снова?

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

Сцена A выполняет pushSegue для сцены B. Все работает нормально, пользователь щелкает элемент навигации в верхней части сцены B и возвращается к сцене A.

Как мне сообщить об этом сцене А? (Идея в том, что пользователь изменяет некоторые параметры в сцене B, что означает, что сцена A должна перерисовываться).

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

Есть идеи?


person Kurt    schedule 05.07.2014    source источник


Ответы (1)


A получит viewDid/WillAppear: вызовов, когда B будет извлечен из стека. В идеале B должен обновить независимый объект модели, поэтому ему не нужно напрямую обращаться к A, чтобы сообщить ему об этом.

Если вам нужно более конкретное управление, сделайте A делегатом навигационного контроллера. Затем он получит информацию о конкретных событиях push/pop с фактическими контроллерами представления, переданными в качестве параметров.

Вы также можете передавать блоки B из A перед отправкой, которые должны выполняться всякий раз, когда важные вещи изменяются, или сделать A делегатом B.

person jrturton    schedule 05.07.2014