Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不应调用自动旋转方法_Ios_Objective C_Xcode - Fatal编程技术网

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中被弃用。