2015-05-27 7 views
0

Я знаю, что я могу выбрать доступную ориентацию своего приложения в меню целей, но я хотел бы заблокировать ландшафтную ориентацию для каждого экрана. ИСКЛЮЧИТЕ тот, у которого есть проигрыватель YouTube.Как заблокировать положение ландшафта от кода, отдельно для каждого контроллера?

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

Я подозреваю, что есть способ сделать это с помощью sharedApplication(), но не имеет понятия, как это сделать.

У вас есть идеи, как это можно сделать?

+0

возможно дубликат http://stackoverflow.com/questions/11785565/how-can-i-disable-landscape-orientation –

ответ

1

Добавьте к этому классу UIViewController вы хотите установить только портрет.

override func supportedInterfaceOrientations() -> Int { 
    return Int(UIInterfaceOrientationMask.Portrait.rawValue) 
} 

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

1

Используйте этот override func в каждом VC вы хотите блокировать .LandscapeLeft и .LandscapeRight

override func supportedInterfaceOrientations() -> Int { 
    return Int(UIInterfaceOrientationMask.Portrait.rawValue) | Int(UIInterfaceOrientationMask.PortraitUpsideDown.rawValue) 
} 
+0

Не работает с UINavigationController. Экран только для портрета заканчивается в ландшафте. –

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