堆叠的presentViewController之后statusBarFrame = 0

  1. 我的主视图控制器调用presentViewController来显示配置屏幕。
  2. 该配置屏幕上的按钮调用presentViewController以允许用户选择照片。
  3. 解除第二个视图控制器后,第一个视图控制器将重新绘制在iOS 6上的状态栏下(在iOS 5上正常工作)。

在第一个配置控制器的viewWillAppear方法(模态呈现的那个)中,我尝试了几件事:

  • 检查statusBarFrame(它在第一个视图中返回20 ;在以下视图中返回20
  • 检查主屏幕的帧(它在第一个视图上返回{{0, 20}, {320, 460}} {0, 0}在以下视图上返回{{0, 20}, {320, 460}}
  • 手动将框架的y坐标设置为20(即使自动调整遮罩设置为无,iOS也会将其更改回0)

此时我想不出任何事情,除了手动将所有子视图向下移动20像素,这是超级janky。 有什么想法可能导致这个?

iOS 6中可能导致此问题的变化是什么?

我不知道为什么,但这是通过删除iOS 6旋转方法来解决的,这些方法由于应用程序仅限于纵向(shouldAutorotate和supportedInterfaceOrientations)而未被使用。