2016-04-27 7 views
0

Я создал навигацию SegmentedControl в одном из видов моего приложения. Каждому сегменту соответствует один отображаемый Container View (а другой скрытый).Контроль Жизненный цикл диспетчеров просмотра при отображении/скрытии просмотров контейнера

В конечном итоге я хотел бы, чтобы отображаемый View Controller получил сообщение - (void) viewDidAppear, а скрытый контроллер View получил сообщение - (void) viewWillDisappear.

Можно ли это сделать простым способом?

ответ

1

Из того, что вы говорите, ваша реализация не в том, как реализовать контейнерный режим. Идея с представлениями контейнера состоит в том, чтобы иметь один контейнерный вид, в который вы помещаете контроллеры представления на основе некоторых событий. Поэтому, когда контроллеры меняются, обратные вызовы жизненного цикла вызываются соответственно. На этом есть много уроков, и вы также можете проверить Apple doc на этом. В вашем случае, когда вы нажимаете на другой сегмент, контроллер просмотра должен быть изменен в вашем контейнере.

+0

Вы говорите, что я должен запускать и вставлять другой контроллер просмотра в виде единого контейнера, когда пользователь переключает сегмент? Насколько я понял (хотя и не из Apple Sources), довольно часто использовать несколько представлений контейнеров друг на друга и только один из них не скрыт («текущий»). Но это может быть неправильно? – Joakim

+0

Вы должны заменить контроллер вида из контейнера новым при нажатии сегментарного элемента управления. Я не знаю, где вы читаете о скрытом методе, но это плохо. – Jelly

+0

Отмечено. Я приму свой ответ, когда попробую. – Joakim