Если вы хотите, чтобы зафиксировать ориентацию, что одна страница только, выполните следующие действия :
Добавьте это в свою ViewDidLoad() на странице, которую вы хотите иметь в ландшафте.
let appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appdelegate.shouldRotate = false
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Landscape.rawValue, forKey: "orientation")
Добавить следующие функции в ваш класс.
override func shouldAutorotate() -> Bool {
// Lock autorotate
return false
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return [UIInterfaceOrientationMask.Landscape]
}
override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
// Only allow Portrait
return UIInterfaceOrientation.Landscape
}
Когда вы покидаете страницу, разблокировать его с помощью добавления следующего кода:
override func viewWillDisappear(animated: Bool) {
let appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appdelegate.shouldRotate = true
}
В вашем AppDelegate, поместите следующий код:
var shouldRotate = true
//MARK: - Func to rotate only one view controller
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
if (shouldRotate == true){
return UIInterfaceOrientationMask.All
}
return UIInterfaceOrientationMask.Landscape
}
Вы хотите, чтобы запустить его всегда в ландшафтном? –
Да, нужно заблокировать этот конкретный viewcontroller в ландшафте. –
override shouldAutorotate in view controller и return true –