【发布时间】:2013-01-24 06:36:56
【问题描述】:
我的导航栏定位问题似乎在 iOS6 中出现。
它在许多方面的行为类似于一些用户在旋转某些视图时遇到的问题
应用有启动画面,全屏显示(通过将Hide statusbar during application launch设置为True实现)
然后在我的主视图控制器的viewDidLoad 中,以下行将状态栏添加回应用程序:
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
这会将 StatusBar 添加到应用程序中,并按预期将视图向下移动 20pt。 但是,NavigationBar 保持在 StatusBar 下方,下方有 20pt 的故障。
在 iOS6 之前,我曾经通过添加以下代码行来解决此问题:
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, [[UIScreen mainScreen] bounds].size.height-20);
然而,现在这行不通了。
一些研究表明,在调用viewDidLoad 时,keyWindow.frame 的大小和来源均为 {0,0},更改它没有任何效果。
将上面提到的两行插入viewDidAppear 时,应用程序启动时会出现相同的行为。然而,当我移动到另一个视图并返回第一个视图时,keyWindow.frame 的更改具有预期的效果,并且 NavigationBar 最终定位在它应该在的位置。
然后我的问题是:当 StatusBar 最初隐藏时,如何在将 StatusBar 添加到 iOS 应用程序后使 NavigationBar 获得正确的位置?
【问题讨论】:
标签: ios ios6 uinavigationbar statusbar