Ios 不应调用自动旋转方法
应用程序定向突然停止按预期工作。我有一个带有Ios 不应调用自动旋转方法,ios,objective-c,xcode,Ios,Objective C,Xcode,应用程序定向突然停止按预期工作。我有一个带有tabBarController的应用程序,主要在纵向模式下工作。一些VC会覆盖这一点以允许横向。部署目标是iOS上的iPhone shouldautorotate方法不再在应用程序中的任何位置调用,但是supportedInterfaceOrientations在每次旋转(我猜是针对不同的subVC)时被调用大约10次(在选项卡中) 这一切以前都很成功,但如果我查看一个我100%知道它有效的老分支,它仍然不起作用。(我知道这一点,因为我有一个测试构建
tabBarController
的应用程序,主要在纵向模式下工作。一些VC会覆盖这一点以允许横向。部署目标是iOS上的iPhone
shouldautorotate
方法不再在应用程序中的任何位置调用,但是supportedInterfaceOrientations
在每次旋转(我猜是针对不同的subVC)时被调用大约10次(在选项卡中)
这一切以前都很成功,但如果我查看一个我100%知道它有效的老分支,它仍然不起作用。(我知道这一点,因为我有一个测试构建,下载时可以正常工作)
我尝试过回溯、清理、更新、重新安装、重新下载整个项目、切换分支等,但都没有效果。我已经查看了调试器输出中的所有警告,并尝试了一系列代码解决方案
我想知道是不是某种plist
或项目设置导致了这种情况。但是,老实说,我几乎从不改变项目设置,所以我怀疑这是真的
注:这不是标题类似的问题的副本。我已经看过了。如果有人知道的话,我将非常感激。自动旋转是我存在的祸根。在iOS 6之前,有一种非常好的方法可以做到这一点,然后在iOS 6中有一种新的方法可以做到这一点,然后在iOS 7中有另一种方法,在iOS 8中又有另一种方法。根据报告:
从iOS 8开始,所有与旋转相关的方法都不推荐使用。相反,旋转被视为视图控制器视图大小的变化,因此使用viewwilltransitionosize:withtransitionocordinator:
方法报告。当界面方向更改时,UIKit在窗口的根视图控制器上调用此方法。然后,该视图控制器通知其子视图控制器,并在整个视图控制器层次结构中传播该消息
请注意,此方法在窗口的根视图控制器上调用,而不是在活动/可见/任意视图控制器上调用。“我的根视图”控制器会取消所有弹出窗口,然后在其视图上调用setNeedsLayout
。(我手动布局了所有视图,因此您的要求可能会有所不同。)但是shouldAutoRotate在文档中没有标记为不推荐。为什么它会突然停止工作?我想我可以用支持的界面定向来创造一个解决方案,我只需要测试和修复我应用程序中的700万个VC。什么?文档与iOS的行为不匹配??我很震惊!:-)事实上,UIViewController
中所有与旋转相关的方法都在iOS 8中被弃用。