Мой основной UIViewController переопределяет willRotateToInterfaceOrientation:duration:
, чтобы адаптировать фоновый вид для правильной ориентации.Это прекрасно работает, когда вы остаетесь в представлении.
Но в моем приложении результат некоторых действий пользователя может привести к представлению другого "дочернего" UIViewController.Когда пользователь завершает работу с дочерним UIViewController, он обычно возвращается к контроллеру основного представления.Для этого мой код вызывает dismissModalViewControllerAnimated:
.
Проблема возникает, когда пользователь меняет ориентацию iPad, когда дочерний UIViewController находится на экране.Тогда основной UIViewController никогда не увидит никакого вызова willRotateToInterfaceOrientation:duration:
, и его фоновое представление будет неправильным.
Эта установка прекрасно работает в iOS 4: реализация iOS 4 dismissModalViewControllerAnimated:
вызывает UIWindow
_setRotatableClient:toOrientation:updateStatusBar:duration:force:
, который вызывает willRotateToInterfaceOrientation:duration:
для включенного UIViewController
.
Видимо, это поведение изменилось для iOS 5.
Каким образом я должен реализовывать изменения ориентации, когда мой вид отключенэкран под iOS5?Например, должен ли я запросить текущую ориентацию в viewWillAppear:
?Я так и сделал, и это прекрасно работает, но, возможно, я что-то упустил.