UISplitViewController не вызывает метод делегата представления в ios 5

Я заметил этот симптом в iOS 5: создайте UISplitViewController с ViewController 1 слева и ViewController 2 справа. Откройте popovercontroller в портретной ориентации, затем закройте popovercontroller. Методы viewWillDisappear/viewDidDisappear контроллера 1 не вызываются. Но в iOS 4.3 методы viewWillDisappear/viewDidDisappear вызываются.

Кто-нибудь знает объяснение этому изменению в поведении?


person Klu    schedule 27.10.2011    source источник


Ответы (2)


По-видимому, автоматически метод ForwardAppearanceAndRotationMethodsToChildViewControllers UISplitViewController настроен на возврат НЕТ вместо ДА. Таким образом, создание подкласса UISplitViewController и автоматическое переопределение ForwardAppearanceAndRotationMethodsToChildViewControllers для возврата YES решило проблему.

Ваше здоровье!

person Klu    schedule 28.10.2011

Я попробовал это с немодифицированным шаблоном контроллера разделенного представления (приложение master-detail, только iPad, без раскадровки), и я не могу подтвердить ваше наблюдение. Обратные вызовы появления/исчезновения вызываются для обоих дочерних элементов контроллера разделенного представления.

Значит, в вашем приложении должно происходить что-то еще; наши начальные условия каким-то образом явно не совпадают... Или мы можем говорить не совсем об одних и тех же обратных вызовах в одни и те же моменты. В документации есть четкое примечание («Переадресация сообщений на его дочерние контроллеры представления») о том, как контроллер разделенного представления пересылает эти сообщения обратного вызова.

person matt    schedule 12.11.2011
comment
Были ли вызваны методы делегата появления/исчезновения после закрытия всплывающего окна в портретном режиме? - person Klu; 24.11.2011