Swift: 为一个控制器启用横向,为其余控制器启用纵向
Swift: Enable landscape for one controller and for the rest only portrait
我的应用程序只有纵向模式,但我需要一个控制器也支持横向模式。
这是我的 info.plist:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
并且在我的应用委托中添加了这个:
var shouldRotate = false
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return shouldRotate ? .allButUpsideDown : .portrait
}
在我的控制器中:
override func viewDidLoad() {
super.viewDidLoad()
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.shouldRotate = true // or false to disable rotation
}
但是控制器不旋转,我的错误是什么?此控制器在导航控制器上以模式打开
控制器单独过去,根据您的要求。
override public var shouldAutorotate: Bool {
return true
}
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .all
}
override public var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .all
}
这应该在 viewcontroller 中,您需要横向和纵向的位置。
// 其他视图控制器:
覆盖public var shouldAutorotate: Bool {
return 错误
}
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
override public var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .portrait
}
// 在 viewcontroller 中添加这个你想要应用在纵向定位中。
为整个应用程序启用所有必需的方向。
并且请删除您在 appDelegate 中与方向相关的代码
我的应用程序只有纵向模式,但我需要一个控制器也支持横向模式。
这是我的 info.plist:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
并且在我的应用委托中添加了这个:
var shouldRotate = false
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return shouldRotate ? .allButUpsideDown : .portrait
}
在我的控制器中:
override func viewDidLoad() {
super.viewDidLoad()
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.shouldRotate = true // or false to disable rotation
}
但是控制器不旋转,我的错误是什么?此控制器在导航控制器上以模式打开
控制器单独过去,根据您的要求。
override public var shouldAutorotate: Bool {
return true
}
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .all
}
override public var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .all
}
这应该在 viewcontroller 中,您需要横向和纵向的位置。
// 其他视图控制器:
覆盖public var shouldAutorotate: Bool { return 错误 }
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
override public var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .portrait
}
// 在 viewcontroller 中添加这个你想要应用在纵向定位中。
为整个应用程序启用所有必需的方向。
并且请删除您在 appDelegate 中与方向相关的代码