隐藏UINavigationBar但仍显示状态栏

时间:2014-03-18 07:11:28

标签: ios xcode uinavigationcontroller

如何通过不隐藏我的应用中的状态栏来隐藏导航栏?当我尝试[self.navigationController.navigationBar setHidden:YES];时,它也会隐藏状态栏。我需要像这样显示状态栏:

enter image description here

我需要先隐藏一个可见的导航栏,让状态栏仍然可见,我还有一个视图,我需要移动到状态栏下方,但视图的位置就像导航栏仍然存在时我将帧的位置设置为0,0。

我将状态栏设置为:

[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

3 个答案:

答案 0 :(得分:1)

将此添加到您要隐藏导航栏的代码

[self.navigationController.navigationBar setHidden:YES];

答案 1 :(得分:0)

如果要隐藏导航栏但显示状态栏,则应将顶部空间到顶部布局指南设置为0而不是-44。然后

Hide navigation bar in viewWillAppear instead of viewDidLoad[self.navigationController setNavigationBarHidden:YES animated:YES]

我开始将顶部空间设置为-44,然后调用方法[[UIApplication sharedApplication] setStatusBarHidden:NO],它不起作用。

答案 2 :(得分:0)

在我的情况下,状态栏文本和符号未显示,因为它们具有与背景相同的颜色(黑色)。我通过改变背景颜色解决了这个问题:

[self.navigationController.navigationBar.superview setBackgroundColor:UIColor.whiteColor];