2016-12-11 9 views
1

Ich arbeite gerade an einer mobilen Anwendung, die nur im Portrait-Modus gesperrt sein sollte. Da ich dies in meinen Projekteinstellungen tun kann, ist das kein Problem, aber ich möchte, dass ein Viewcontroller nur im Landscape-Modus angezeigt wird.Ich möchte einen Viewcontroller nur im Landscape-Modus anzeigen lassen

Ich versuchte zu Portrait-Modus in den Projekteinstellungen und hinzugefügt, um dieses Stück Code in meinen Landschaft View-Controller (und auch die, die es nennt, aber mit einem Hochformat) zu deaktivieren:

let value = UIInterfaceOrientation.landscapeLeft.rawValue 
UIDevice.current.setValue(value, forKey: "orientation") 
UIViewController.attemptRotationToDeviceOrientation() 

Der Problem, das ich im Moment habe, ist, dass diese Lösung nicht optimal ist. Der Benutzer kann sein Gerät noch drehen. Wie kann ich das beheben?

+0

Ich habe die gleicher Fehler. Mein Code funktionierte perfekt in iOS 9, aber dann begann ich den Benutzer in iOS 10 zu drehen, wenn sie es versuchten. – BennyTheNerd

Antwort

0

Versuchen Sie zu sperren das Auto

override var shouldAutorotate : Bool { 
    // Lock autorotate 
    return false 
} 
0

drehen Dies funktionierte vor iOS10

viewDidLoad:

UIDevice.current.setValue(UIInterfaceOrientation.landscapeRight.rawValue, forKey: "orientation") 

dies auch in der Viewcontroller:

override var shouldAutorotate : Bool { 
    return true 
} 

override var supportedInterfaceOrientations : UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask.landscapeRight 
} 

override var preferredInterfaceOrientationForPresentation : UIInterfaceOrientation { 
    return UIInterfaceOrientation.landscapeRight 
} 
Verwandte Themen