Como girar a orientação programaticamente no Swift?
Eu tentei o seguinte:
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Portrait.rawValue, forKey: "orientation")
em
viewWillAppear
mas não funciona. Como rotacionar minha tela no viewWillAppear?
ATUALIZAR
Eu uso o próximo código para bloquear uma orientação:
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)
}
}
e no meu primeiro controlador no viewWillAppear eu defino:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = true
}
no meu segundo controlador:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = false
}
então, quando eu volto do segundo controlador para o PRIMEIRO:
Eu giro para a esquerda - não gira, giro de volta para a direita - nada, giro para a esquerda, novamente - ele gira.
Como posso corrigir isso?