Как программно повернуть ориентацию в Swift?
Я попробовал следующее:
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Portrait.rawValue, forKey: "orientation")
на
viewWillAppear
Но это не работает. Как я могу повернуть мой экран на viewWillAppear?
ОБНОВИТЬ
Я использую следующий код для блокировки ориентации:
var shouldRotate = true
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> Int {
if shouldRotate == true {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
} else {
return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue)
}
}
Swift 4.0
private func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> Int {
if shouldRotate == true {
return Int(UIInterfaceOrientationMask.portrait.rawValue)
} else {
return Int(UIInterfaceOrientationMask.landscapeLeft.rawValue)
}
}
и в моем ПЕРВОМ контроллере viewWillAppear я установил:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = true
}
в моем втором контроллере:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = false
}
Итак, когда я вернусь из второго контроллера на первый:
Я вращаю его влево - не вращается, вращаюсь назад вправо - ничего, вращаюсь влево, снова - он вращается.
Как я могу это исправить?