Обратные вызовы viewWillAppear и viewWillDisappear, когда представление ViewController скрыто другим представлением и содержимым UIViewController в iOS5 - PullRequest
4 голосов
/ 18 июля 2011

Документы UIViewController упоминают о -viewWillDisappear:

"Этот метод вызывается в ответ на удаление представления из его окно или закрыто другим видом . Этот метод вызывается раньше вид фактически удаляется или закрывается и до того, как анимация сконфигурировано ".

В iOS 4.3 и ниже мы должны представить viewController и не добавлять явно представление viewController в иерархию представлений, поэтому вызовы -viewWillDisappear или -viewDidDisappear будут инициированы, когда новый контроллер представления будет представлен поверх существующее представление, в этом случае ', охватываемое другим представлением ', является истинным! Но что, если представление viewController скрыто, так как другое представление препятствует представлению viewController? Мы получаем эти обратные вызовы?

Ну, в iOS 5 есть концепция сдерживания UIViewController, где представления могут быть непосредственно добавлены как подпредставления в иерархии представления путем установки отношения родитель-потомок между viewControllers. Таким образом, в отличие от ОС <= 4.3, вызовы - <code>viewWillDisappear и -viewDidDisappear в идеале должны запускаться, когда представление viewController затруднено или закрыто каким-либо другим представлением, которое, как я убедился в примере проекта, не происходит в SDK 5.0 .

Кто-нибудь нашел эту проблему, связанную с этими обратными вызовами? Или мое понимание верно?

Спасибо, Радж

1 Ответ

1 голос
/ 10 ноября 2011

У кого-то здесь такая же проблема:

iOS 5: -viewWillAppear не вызывается после закрытия модала в iPad

Вы должны прочитать ответы, я нашел их очень интересными.

...