如何在iOS 7中隐藏状态栏?

时间:2013-11-07 01:29:24

标签: ios objective-c ios7 uinavigationbar statusbar

我已尝试在我的应用.plist文件中设置以下内容:

View controller-based status bar appearance: NO

虽然这会从我的初始视图控制器中删除它,但是一旦我转到另一个视图并使用我的导航控制器返回,它就会回来,这次它不会消失。此外,我不明白为什么它会重要,但我还将模拟指标下的状态栏设置为“无”,但这似乎没有帮助。我知道我将拥有导航栏,但状态栏我需要消失。

enter image description here

我怎样才能完成这项工作? 请提供详细的答案,示例代码会很棒!

更新:这不是一个重复的解决方案,因为我尝试了所有其他解决方案,NONE似乎对我有用。最近我试过

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

再次,没有结果。当应用程序最初启动时,状态栏不存在,在用户访问另一个视图后,状态栏现在出现在2和其他视图中,并且不会消失。即使你回到主视图。

7 个答案:

答案 0 :(得分:6)

我已经尝试了这里发布的所有建议,不幸的是,这里发生的是一个小错误,在我的viewDidLoad我有:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

但在我的viewWillAppear我有:

[[UIApplication sharedApplication] setStatusBarHidden:NO];

所以这只是一个压倒一切的问题,现在修复了问题。

答案 1 :(得分:5)

隐藏状态栏:

如果[查看基于控制器的状态栏外观:否]:在AppDelegate.m中调用

[[UIApplication sharedApplication]setStatusBarHidden:YES];

else:在每个视图控制器中

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

答案 2 :(得分:2)

在视图控制器中使用此方法,您希望隐藏状态栏:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

答案 3 :(得分:2)

尝试以下两个步骤:

  1. 在项目的.Plist文件中设置属性:
  2. 查看基于控制器的状态栏外观= NO;

    和 2.在viewDidLoad方法的所有视图中控制器的.m文件中放入以下代码行:

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

答案 4 :(得分:0)

这应该有效:

//在iOS7中,这会被调用并隐藏状态栏,因此视图不会位于顶部的iPhone下 //状态栏

- (BOOL)prefersStatusBarHidden {
      return YES;
}

答案 5 :(得分:0)

这些都不适合我。 当我尝试这种方法时,我收到消息“使用未声明的标识符preferstatusbarHidden

include - (BOOL)prefersStatusBarHidden {
      return YES;
}

答案 6 :(得分:0)

我不知道该怎么办了。我试过setStatusBarHidden,prefersHiddenStatusBar但仍然没有结果。最后我通过下面的管道链接:

https://www.youtube.com/watch?v=FtpBXdMSqRQ

它对我有用。