UIViewController в UINavigationController не вращается должным образом - PullRequest
1 голос
/ 23 апреля 2011

У меня есть UINavigationController, корневой UIViewController которого поддерживает только книжную ориентацию.Когда пользователь нажимает кнопку, второй UIViewController загружается и помещается в стек, этот контроллер представления, назовем его secondViewController, поддерживает только альбомную ориентацию.

Обычно происходит то, что интерфейс поворачивается во время перехода кsecondViewController, но этого не происходит, несмотря на shouldAutorotateToInterfaceOrientation: вызывается на secondViewController.Когда я наклоняю устройство вручную, когда отображается secondViewController, оно поворачивается, как ожидается, и при переключении обратно на первый UIViewController оно поворачивается обратно в портретное положение, как и должно быть.

Чтобы проверить, имеют ли разрешенные ориентации интерфейса первого UIViewController какое-либовлияние на процесс я установил возврат ДА;однако для всех интерфейсов проблема осталась.Я также прочитал технические вопросы и ответы по теме , но в соответствии с этим документом все должно быть в порядке, UINavigationController является единственным подпредставлением окна.

Я создаю secondViewController полностью программно (перезаписываю loadView) и раньше этот конкретный случай работал в других приложениях.Кто-нибудь знает, что я могу делать не так?

1 Ответ

1 голос
/ 23 апреля 2011

Очевидно, что изменение не происходит автоматически, следующее дает необходимый «толчок»:

- (void) viewWillAppear:(BOOL)animated {
    [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
}
...