Заставить UIViewController показывать только в ландшафтном режиме - PullRequest
11 голосов
/ 17 марта 2011

Мое приложение работает в портретном режиме, но я хочу показать один экран в альбомном режиме только в виде графика.Что я могу добавить к своему контроллеру uiview, чтобы перевести его только в альбомный режим?

Ответы [ 3 ]

14 голосов
/ 17 марта 2011

Извините, но этот ответ будет очень коротким: если вы используете UINavigationController, вы не можете. Поэтому ответ @jer неверен. Документация Apple гласит:

Все контроллеры дочерних представлений в вашем UITabBarController или UINavigationController не согласуются с общим набором ориентации.

Недавно я получил ответ на этот вопрос в награду, и мое приложение было отклонено в процессе. Читайте об этом здесь: Как ограничить автоповорот одной ориентацией для одних видов, допуская при этом все ориентации для других?

Единственное решение, которое у вас есть, это выбросить UINavigationController и переписать его чем-то своим.

3 голосов
/ 06 сентября 2011

Представляя и отклоняя контроллер вида модально, вы можете форсировать ориентацию. Установите для анимации значение «НЕТ», и вы можете сделать это, даже если пользователь не осознает, что это произошло.

Подробнее об ответе Джоша можно прочитать на Есть ли документированный способ установки ориентации iPhone?

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

2 голосов
/ 17 марта 2011

Вы реализуете shouldAutorotateToInterfaceOrientation:, и он возвращает только YES для UIInterfaceOrientationIsLandscape(param), где param - это параметр, который вы объявили для метода.

Это будет поддерживать альбомную ориентацию влево и альбомную ориентацию вправо вместо блокировки вастолько в одной альбомной ориентации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...