【发布时间】:2015-12-02 21:35:09
【问题描述】:
我有一个支持所有方向的应用程序,但在某些情况下,我想暂时将其限制为仅纵向。它不是只需要纵向的视图控制器和可以是任何方向的视图控制器的混合,而是我想在用户单击屏幕上的按钮时禁用方向更改,而视图控制器保持不变。
在寻找限制UIViewController 的UI 方向的方法时,弹出的方法是supportedInterfaceOrientations() 和preferredInterfaceOrientationForPresentation()。两者都不适合我:
-
supportedInterfaceOrientations()在视图加载时只运行一次,所以即使我将它的返回值设置为有条件的,它也不会在条件更改后运行。 - 我的视图控制器显示在导航堆栈中,而不是模态显示,因此
preferredInterfaceOrientationForPresentation()根本不运行。
有什么方法可以达到我想要的效果吗?
【问题讨论】:
-
当你说
supportedInterfaceOrientations()只在视图加载时运行,你是什么意思?你能详细说明这一点吗? -
意思是当viewController初始化并加载时,方法运行。然后用户点击一个按钮并设置一个标志来限制方向。然后,如果我旋转设备,它就会旋转,我可以在调试器中看到
supportedInterfaceOrientations()在第一次之后再也没有运行过。我可以通过再次调用该方法来强制操作系统在支持的方向上刷新其数据吗?
标签: ios uiviewcontroller uiinterfaceorientation