从其他屏幕返回时,屏幕从纵向旋转到横向

时间:2019-08-28 08:34:58

标签: ios

我有2个视图控制器(A和B)。

A是自动旋转,B是横向移动。

当用户关闭“人像方向锁定”时,就可以了:始终按照设备方向旋转。

但是,当启用“纵向方向锁定”时,从B返回时,A的方向始终为横向。

启用纵向方向锁定后,如何强制A始终为纵向。

谢谢。

2 个答案:

答案 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")
    }