2016-12-11 1 views
1

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

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

let value = UIInterfaceOrientation.landscapeLeft.rawValue 
UIDevice.current.setValue(value, forKey: "orientation") 
UIViewController.attemptRotationToDeviceOrientation() 

проблема, с которой я сталкиваюсь сейчас, заключается в том, что это решение не является оптимальным. Пользователь все еще может повернуть свое устройство. Как я могу это исправить?

+0

У меня есть такой же выпуск. Мой код работал отлично в iOS 9, но затем начал позволять пользователю вращаться в iOS 10, если они пытались. – BennyTheNerd

ответ

0

Попытка заблокировать автоповорота

override var shouldAutorotate : Bool { 
    // Lock autorotate 
    return false 
} 
0

Это работало до того iOS10

viewdidload:

UIDevice.current.setValue(UIInterfaceOrientation.landscapeRight.rawValue, forKey: "orientation") 

имеют Кроме того, это в ViewController:

override var shouldAutorotate : Bool { 
    return true 
} 

override var supportedInterfaceOrientations : UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask.landscapeRight 
} 

override var preferredInterfaceOrientationForPresentation : UIInterfaceOrientation { 
    return UIInterfaceOrientation.landscapeRight 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^