Невозможно заблокировать ориентацию iPad iPad 2

Приложение iOS, над которым я работаю, имеет представление, которое необходимо заблокировать в альбомной ориентации. До этого момента это выполнялось с помощью методов shouldAutorotate и supportedInterfaceOrientations, но на iPad Air 2 running iOS9 beta5 эти методы никогда не срабатывали и ориентация не была заблокирована.

Я пробовал следующие устройства, методы, запущенные на всех, кроме Air2 (запуск отладки с Xcode beta6): iPhone 6+, iPad Mini, iPad Air 2, iPad 2, iPad 3

Методы, не срабатывающие, следующие:

- (BOOL)shouldAutorotate {
    return YES;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationMaskLandscapeRight;
}

Просмотр контроллера отображается через presentViewController

Ответы

Ответ 1

Многозадачность может быть отключена добавлением поля UIRequiresFullScreen в приложение info.plist с логическим значением YES, и это позволит использовать методы делегирования ориентации shouldAutorotate, preferredInterfaceOrientation и supportedInterfaceOrientations пожар.

Что касается фиксации ориентации И, поддерживающей многозадачность, я не нашел способ сделать это.

Ответ 2

Параметр "Требуется полный экран" можно включить из "Общие" целевых настроек.

Требуется полный экран

При этом будет активирован код ориентации. Как упоминалось в ackerman91, вы также можете установить UIRequiresFullScreen boolean на YES в приложении info.plist или на целевой вкладке "Информация".

Ответ 3

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