在我开始为 iOS 6 调整我的应用程序之前根本没有这个问题。每当我从模态转场返回时(使用dismissViewControllerAnimated:completion:),我的主视图都会向上移动大约状态栏的高度偏移量(并且随后位于状态栏后面)。
我发现的唯一解决方法是添加:
self.navigationController.view.frame = CGRectMake(0, 20, 320, 460);
self.view.frame = CGRectMake(0, 0, 320, 416);
到我的dismissViewControllerAnimated:completion 方法(这些值适用于iPhone < 5,仅用于解释)。但这并不能真正解决问题,因为当我要呈现下一个模态视图控制器时,呈现的视图会向上移动大约状态栏的高度偏移量。
不知道这个问题是如何产生的。我的怀疑是,在 segue 的某个地方,导航控制器之一丢失了状态栏的存在(以某种方式链接到新的状态栏?)。
编辑:主视图的屏幕截图,模态解除后。[注意:底部有 20px 空白]