我的 rootViewController 是一个UITabbarController
并且包含UINavigationController
s。
为了限制旋转,从 iOS6 开始,在一些但不是所有视图上,我对这两个控制器进行了子类化,以尊重它们最顶层或可见视图的 shouldAutorotate 响应。
这一切都非常完美......大多数时候。
在一种情况下,从不允许旋转的视图 (UITableviewController) 开始。
我推了一个允许自动旋转的视图,旋转到横向然后回到纵向。
然后当我弹出视图时,一切看起来都很好。
但是现在如果我旋转设备,状态栏单独旋转,在顶部留下一个空白区域并覆盖当前视图左侧的一部分。当前视图不旋转(因为它不应该)。只有状态栏来回旋转。视图保持响应,接收触摸并正常工作,不会以任何方式调整大小或响应旋转(因为它不应该)。
这种行为一直持续到我杀死并重新启动应用程序。一旦它发生,我就找不到其他方法让它停止。重新启动后,一切都会再次正常工作,并将在不确定的时间内正常工作。我可以坐在那里推动,弹出,来回旋转,让我心满意足,没有任何问题。
我从来没有能够在模拟器中重新创建它。
它没有明显的原因发生,我无法让它发生。我会说 85% 的时间它都能正常工作。我以为我已经修复了很多次,但几天甚至几周都没有发生。然后,出乎意料地再次发生。
我在任何论坛中都找不到描述这种行为的帖子,所以我什至找不到开始调试的地方。状态栏怎么会从上到下摆动,并且视图不会以任何方式调整大小或旋转或响应。如果我知道如何做到这一点,我就会有一个开始的地方。