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