¿Cómo rotar la orientación mediante programación en Swift?
Intenté lo siguiente:
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Portrait.rawValue, forKey: "orientation")
en
viewWillAppear
Pero no funciona. ¿Cómo puedo rotar mi pantalla en viewWillAppear?
ACTUALIZAR
Yo uso el siguiente código para bloquear una orientación:
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)
}
}
y en mi PRIMER controlador a la vista Aparecerá:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = true
}
en mi SEGUNDO controlador:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = false
}
entonces, cuando regreso del SEGUNDO controlador al PRIMERO:
Lo giro hacia la izquierda, no gira, gire hacia la derecha, nada, gire hacia la izquierda, otra vez, gira.
¿Cómo puedo arreglarlo?