Несколько проблем с вращением Windows - iPhone / iPad - PullRequest
6 голосов
/ 27 августа 2010

Мое приложение использует 2 UIWindows.Первый показанный имеет контроллер TabBar с ViewControllers, которые поворачиваются только в книжную ориентацию.До сих пор все работает нормально.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 return (UIInterfaceOrientationIsPortrait(interfaceOrientation));
}

В другом окне у меня есть UIViewController, который вращается во все ориентации.

Проблема в том, что когда я показываю второе окно

[secondWindow makeKeyAndVisible];

А затем вернитесь к первому

[firstWindow makeKeyAndVisible];

Строка состояния вращается во всех направлениях, и событие не должно вызыватьсяAutorotateToInterfaceOrientation.Как я могу решить проблему?

Ответы [ 2 ]

5 голосов
/ 27 июля 2011

Хорошо иметь несколько UIWindows в одном приложении, но предостережение в том, что код Apple, кажется, проверяет все UIWindow, которые у вас есть, и проверяет, допускает ли верхний контроллер представления определенный поворот. Если любое из этих окон позволяет вращение, ваша строка состояния будет вращаться независимо от того, является ли окно UIWindow передним или видимым.

В моем собственном приложении я скрываю UIWindow, которым не пользуюсь, и добавил проверку isHidden в соответствующих UIViewControllers, чтобы запретить поворот, если окно в данный момент скрыто.

1 голос
/ 23 августа 2013

Хорошо иметь несколько UIWindows в одном приложении, но предостережение заключается в том, что код Apple, кажется, проверяет все имеющиеся у вас UIWindow и проверяет, допускает ли верхний контроллер представления определенный поворот.

Согласно ответу, сделал много тестов и пришел к выводу, что поворот строки состояния зависит от самого верхнего контроллера представления каждого окна.

...