代码之家  ›  专栏  ›  技术社区  ›  Emre Önder

父uiviewcontroller在关闭后不更改方向

  •  1
  • Emre Önder  · 技术社区  · 6 年前

    我有一个 UIViewController (称为b)我想以横向的方式呈现(强制)它。所有其他的 UIViewControllers 以纵向模式呈现。在“我的项目设置”中,仅选择“纵向”模式。 我的问题是,当我从B回到A的时候,它会在景观模式上结巴。

    内部AppDelegate:

    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
        if #available(iOS 10.0, *) {
            if self.window?.rootViewController?.presentedViewController is CheckImageCameraViewController {
                return UIInterfaceOrientationMask.landscapeRight
            } else {
                return UIInterfaceOrientationMask.portrait
            }
        } else {
            // Fallback on earlier versions
        }
        return UIInterfaceOrientationMask.portrait
    }
    

    在控制器A中;

    let controllerB = ControllerB()
    self.present(controllerB,animated:true,completion:nil)
    

    在控制器B中;

    override func viewDidLoad() {
        super.viewDidLoad()
    
    
        let value = UIInterfaceOrientation.landscapeRight.rawValue
        UIDevice.current.setValue(value, forKey: "orientation")
    }
    func closeButtonTapped(){
    self.dismiss()
    }
    

    编辑 当它在A上时,如果我移动手机来改变方向。它看起来像肖像。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Woodstock    6 年前

    覆盖 viewWillAppear() 在A中,检查方向并采取适当的措施。