UINavigation Controller и Авторотация - PullRequest
1 голос
/ 04 июня 2010

Я использую UINavigationController, чтобы выдвигать и выдвигать представления. Панель навигации скрыта.

У меня есть RootViewController, который настроен на автоматический поворот. Работает просто отлично, когда видно. У меня также есть GalleryViewController. Автовращение отключено, просто вернув номер.


Моя проблема в том, что когда GalleryViewController находится в стеке навигации, RootViewController перестает отвечать на события его автоматического поворота.


Если я нахожусь в Портретном, и я поворачиваю устройство (при просмотре GalleryViewController), а затем нажимаю кнопку «Назад», он вытаскивает GalleryViewController из стека и открывает RootViewController, но RootViewController не изменил вращение, как должно было.

Я застрял в методе -viewWillAppear и проверил состояние ориентации UIDevice. Это дает мне правильную ориентацию для устройства.

Кстати, я также попытался включить автоматическое вращение в GalleryViewController. Затем он вращает представление правильно, но по-прежнему не поворачивает RootViewController.


Похоже, что при использовании контроллера навигации вращается только верхняя часть стека.


ВОПРОС: Поскольку устройство знает, что оно вращается правильно, когда вызывается -viewWillAppear, могу ли я заставить его каким-либо образом обновить ??

-Марк

1 Ответ

0 голосов
/ 21 октября 2011

вместо того, чтобы возвращать просто YES, возвращать (interfaceOrientaion == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || и так далее ...) в RootViewController.

в GalleryViewController возвращает только одну ориентацию, которая, по нашему мнению, является ориентацией по умолчанию.

Когда это сделано - все должно работать так, как вы хотите.

...