Ландшафтный и портретный режим NavigationController

У меня есть два ViewController, один поддерживает ориентацию, другой нет, но когда я поворачиваю второй ViewController (тот, который поддерживает ориентацию) в альбомную и обратно к первому ViewController (не поддерживает ориентацию), в то время как второй вид все еще остается альбомным, он изменит первый вид также становится альбомным, но он не должен быть альбомным, а первый ViewController не поддерживает ориентацию, как мне предотвратить это?

Я хочу, чтобы первый вид всегда был портретным, независимо от того, как вы поворачиваете телефон, особенно когда вы возвращаетесь из второго вида, и он был в альбомной ориентации.


person issac    schedule 09.04.2009    source источник


Ответы (2)


в viewWillAppear:Animated вашего первого контроллера вызовите

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];

И, конечно же, настройте shouldAutoRotateToInterfaceOrientation так, чтобы он возвращал YES только для UIInterfaceOrientationPortrait.

person Ed Marty    schedule 09.04.2009
comment
это только поворачивает устройство обратно в горизонтальное положение, но мой вид все еще был в альбомной ориентации, а другие? - person issac; 10.04.2009
comment
Вы должны убедиться, что правильный контроллер представления получает события поворота. Иногда добавление контроллера представления приводит к тому, что он получает события даже после его удаления; Кроме того, я знаю, что по крайней мере с TabBarViewControllers он не отправляет события поворота своим дочерним элементам, поэтому вам нужно переопределить. - person Ed Marty; 10.04.2009
comment
Я думаю, что Эд имел в виду [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; Вышеприведенный источник - это только изменение ориентации строки состояния, а не представлений. - person Yoon Lee; 20.04.2011
comment
Изменение ориентации строки состояния изменяет ориентацию представления. - person Ed Marty; 21.04.2011

в viewWillAppear:Animated вашего первого контроллера вызовите [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

person Community    schedule 17.09.2009