我有2个视图控制器(A和B)。
A是自动旋转,B是横向移动。
当用户关闭“人像方向锁定”时,就可以了:始终按照设备方向旋转。
但是,当启用“纵向方向锁定”时,从B返回时,A的方向始终为横向。
启用纵向方向锁定后,如何强制A始终为纵向。
谢谢。
答案 0 :(得分:0)
在这里-https://stackoverflow.com/a/41811798/10261915您已经回答
将此添加到AppDelegate
struct AppUtility {
static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
if let delegate = UIApplication.shared.delegate as? AppDelegate {
delegate.orientationLock = orientation
}
}
/// OPTIONAL Added method to adjust lock and rotate to the desired orientation
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
self.lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
UINavigationController.attemptRotationToDeviceOrientation()
}
}
并使用
AppUtility.lockOrientation(.portrait, andRotateTo: .portrait)
答案 1 :(得分:0)
添加到BViewController:
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.setValue(Int(UIInterfaceOrientation.landscapeLeft.rawValue), forKey: "orientation")
}
override func viewWillDisappear(_ animated: Bool) {
UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")
}