【发布时间】:2015-10-26 05:13:30
【问题描述】:
我有一个UIViewController,我在其中覆盖了这两种方法:
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
override func shouldAutorotate() -> Bool {
return false
}
我的设备方向被勾选为纵向、横向左和右。
我清理了构建文件夹。
我的问题:当我转到横向时,应用会改变方向。
知道出了什么问题。我认为覆盖这两种方法就足够了,但似乎还不够。
【问题讨论】:
-
这是嵌入在 UINavigationController 中的吗?
-
确实如此。实际上我是最近才添加的,我不认为这可能是原因。
-
是的,既然它嵌入在 UINavigationController 中,它仍然会旋转,因为 UINavigationControllers shouldAutorotate() 没有被覆盖。
-
我很惊讶它不遵循嵌入式视图控制器的规则。我该如何解决?
-
为 UINavigationController 创建一个扩展并覆盖 shouldAutorotate() 并在其中写入 return visibleViewController.shouldAutorotate() 并覆盖相应视图控制器中的 shouldAutorotate()
标签: ios swift uiviewcontroller uiinterfaceorientation