导航栏位于隐藏状态栏下方

时间:2012-01-30 05:30:32

标签: iphone ios uinavigationbar hidden uistatusbar

来自TableView,我正在创建一个MKMapView。我希望有更多的屏幕空间,所以我隐藏状态栏并将导航栏设置为transluscent。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;

不幸的是,导航栏位于隐藏状态栏下方(见图片)。

enter image description here

我已经发现这可能会有所帮助,因为可以在主事件循环中执行某种重新加载:

[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];

但到目前为止这还没有奏效。任何提示?

提前致谢。

2 个答案:

答案 0 :(得分:1)

好的,我发现了该怎么做:

[self performSelector:@selector(setNavigationController:NO) withObject:nil afterDelay:0.1];
[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];

这会关闭导航栏并再次打开,这会强制它重绘到正确的位置。

答案 1 :(得分:0)

我在iOS 6中使用它:

self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;