模态解雇不考虑状态栏(新的iOS 6问题?)

Cha*_*rsh 4 xcode frame statusbar offset ios6

在我开始为iOS 6开始调整我的应用程序之前完全没有这个问题.每当我从模态segue返回(使用dismissViewControllerAnimated:completion :)时,我的主视图向上移动大约状态栏的高度偏移值(和随后在状态栏后面).

我发现的唯一解决方法是添加:

self.navigationController.view.frame = CGRectMake(0, 20, 320, 460);
self.view.frame = CGRectMake(0, 0, 320, 416);
Run Code Online (Sandbox Code Playgroud)

到我的dismissViewControllerAnimated:完成方法(这些值适用于iPhone <5,仅供参考).但这并没有真正解决问题,因为当我去展示下一个模态视图控制器时,呈现的视图然后向上移动大约状态栏的偏移值.

不知道这个问题是如何产生的.我的怀疑是,在segue的某个地方,其中一个导航控制器失去了对状态栏存在的跟踪(以某种方式链接到新的状态栏?).

编辑:主视图的截图,后模态解雇.[注意:底部有20px的空白]在此输入图像描述

Cha*_*rsh 13

解决了这个问题.我定制navigationControllersupportedInterfaceOrientations返航UIInterfaceOrientationPortrait,而不是UIInterfaceOrientationMaskPortrait.