应用定向突然停止了预期的工作。我有一个应用程序,其中一个tabBarController
主要在纵向模式下工作。一些VC会覆盖此设置以允许横向显示。部署目标是iOS
9.0及更高版本上的iPhone。
shouldautorotate
方法不再在应用程序中的任何位置被调用,但是每次旋转supportedInterfaceOrientations
被调用大约10次(在tabbarController
中)(对于不同的subVC,我猜是这样)
这一切以前都非常出色,但是如果我查看一个较旧的分支(该分支我100%知道它起作用),那么它仍然不起作用。 (我知道这一点是因为我有一个测试版本,可以在下载时正常工作)
我尝试回溯,清理,更新,重新安装,重新下载整个项目,切换分支等,但是没有任何效果。我遍历了调试器输出中的所有警告,并尝试了一堆代码解决方案。
我想知道是否是某种原因引起的plist
或项目设置。但是,老实说,我几乎从未更改过项目设置,所以我怀疑就是这样。
PS。这不是标题相似的问题的重复。我已经经历了他们。如果有人有任何想法,我将不胜感激。
答案 0 :(得分:0)
自动旋转是我iOS存在的祸根。在iOS 6之前,有一种非常好的方法来执行此操作,然后在iOS 6中有一种新方法可以执行此操作,然后在iOS 7中提供另一种方法,在iOS 8中提供另一种方法。根据UIViewController documentation :
从iOS 8开始,不建议使用所有与旋转有关的方法。相反,旋转被视为视图控制器视图大小的变化,因此使用
viewWillTransitionToSize:withTransitionCoordinator:
方法进行报告。当界面方向改变时,UIKit在窗口的根视图控制器上调用此方法。然后,该视图控制器通知其子视图控制器,从而在整个视图控制器层次结构中传播消息。
请注意,此方法在窗口的根视图控制器上调用,而不是在活动/可见/任何视图控制器上调用。我的根视图控制器消除了所有弹出窗口,然后在其视图上调用setNeedsLayout
。 (我手动布置了所有视图,因此您的要求可能会有所不同。)