Wenn Sie die Orientierung für diese eine Seite sperren wollen nur, gehen Sie wie folgt :
Fügen Sie dies Ihrer ViewDidLoad() auf der Seite hinzu, die Sie nur in Landscape haben möchten.
let appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appdelegate.shouldRotate = false
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Landscape.rawValue, forKey: "orientation")
Fügen Sie die folgenden Funktionen in Ihre Klasse ein.
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
}
Wenn Sie die Seite verlassen, schalte es mit dem Hinzufügen von den folgenden Code:
override func viewWillDisappear(animated: Bool) {
let appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appdelegate.shouldRotate = true
}
In Ihrem AppDelegate, setzen Sie den folgenden Code ein:
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
}
Sie wollen es immer in Landschaft laufen? –
Ja möchte diesen einen bestimmten Viewcontroller in Querformat sperren. –
override shouldAutorotate in Sicht Controller und Rückgabe True –