Dea*_*ids 9 iphone autorotate ios uistatusbar
我的rootViewController是一个UITabbarController并包含UINavigationControllers.
为了限制旋转,因为iOS6,在一些但不是所有视图上,我已经将这两个控制器子类化,以尊重其最顶层或可见视图的shouldAutorotate响应.
这一切都很完美......大多数时候.
在一种情况下,从不允许旋转的视图(UITableviewController)开始.
我推出一个允许自动旋转的视图,旋转到横向然后再回到肖像.
然后当我弹出视图时,一切都很好看.
但是现在如果我旋转设备,状态栏就会单独旋转,在顶部留下一个空白区域并覆盖当前视图左侧的一部分.当前视图不会旋转(因为它不应该旋转).只有状态栏来回旋转.视图保持响应,接收触摸并正常工作,不以任何方式调整大小或响应旋转(因为它不应该).
此行为一直持续到我杀死并重新启动应用程序.一旦它发生,我找不到其他方法让它停止.重新启动时,所有工作正常,并将在不确定的持续时间内正常工作.我可以坐在那里推动,弹出,来回旋转我心中的内容,没有任何问题.
我从来没有能够在模拟器中重新创建它.
它没有明显的原因发生,我无法实现.我会说有85%的时间它正常工作.当我没有发生几天甚至几周时,我以为我已经多次修复了它.然后,突然之间又发生了.
我在任何描述此行为的论坛中找不到帖子,所以我甚至找不到开始调试的地方.状态栏如何从顶部到另一侧摆动,视图不会以任何方式调整大小或旋转或响应.如果我知道如何实现这一目标,我将有一席之地.
添加子类时我遇到了同样的问题UIWindow(在我的例子中,状态栏覆盖).
解决方案是将rootViewController这个新的设置为已实现UIWindow的子类.这阻止了状态栏在不应该旋转时旋转.UIViewController-(BOOL)shouldAutorotate