2014-01-28 5 views
0

Когда у вас встроенный контроллер просмотра внутри контейнера, как вы можете определить, когда он собирается выполнить сеанс?Обнаружение segue внутри контейнера

Например:

Storyboard

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

ответ

2

Поскольку управление segue выполняется встроенным контроллером представления, решением было бы установить механизм делегирования между вашим встроенным контроллером представления и содержащим контроллером представления, так что содержащий контроллер представления информации будет проинформирован, если выполняется segue.

Если вы не хотите, чтобы ваши диспетчеры обзора знали друг друга, вы также могли отправлять уведомления через NSNotificationCenter из метода prepareForSegue и реагировать на них в содержащем контроллере просмотра.

+0

После небольшой отладки я обнаружил, что (поскольку мое приложение основано на навигационных контроллерах) каждый раз посылалось уведомление 'UINavigationControllerWillShowViewControllerNotification', поэтому я добавил наблюдателя для него. Я выбираю ваш ответ, так как упоминание уведомлений заставил меня задуматься, спасибо! – BytesGuy

0

Во встроенном виде вы можете использовать метод - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender для уведомления о представлении контейнера. Я предполагаю, что segues приложили указатель в раскадровке.

+0

То, что я имею в виду, это обнаружить его в контроллере вида, который имеет контейнер – BytesGuy

+0

Как говорит @Christian, в его ответе вам нужно будет использовать уведомление или делегат. Вот аналогичный вопрос: http://stackoverflow.com/questions/14968321/container-view-controllers-notify-parent-of-action – alexcristea

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