状态栏不会消失

113

我正在创建一个应用程序,想要隐藏状态栏。 当我测试该应用程序时,在显示启动画面时状态栏已被隐藏,但是一旦应用程序完全加载,状态栏就会重新出现。

我正在使用Xcode 5和iOS 7,并尝试通过编程方式禁用状态栏。

  ([[UIApplication sharedApplication] setStatusBarHidden:YES    
      withAnimation:UIStatusBarAnimationFade];),

在 info.plist 文件中和在 .xib 文件上使用属性检查器,但似乎都没有作用。

有任何想法吗?

14个回答

2

我也遇到了UIImagePicker的问题。和Alones的答案类似,我的解决方案是添加以下代码:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

到这个函数:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

我没有在iOS 6或更早版本上测试过,但在iOS 7上运行良好。


'setStatusBarHidden:'已被弃用:自iOS 9.0起首次被弃用 - 使用-[UIViewController prefersStatusBarHidden] - snibbe

2

Swift解决方案

只需将以下内容添加到您的视图控制器中:

override func prefersStatusBarHidden() -> Bool {
    return true
}

0
我的问题是我使用了视图控制器容器。只有最上层的视图控制器,例如嵌入到导航控制器中的视图控制器,才能隐藏或显示状态栏。

0

我正在使用Xcode 6,这个解决方案对于iOS 7和8适用:

首先,在plist文件中将“View controller-based status bar appearance”设置为NO。

其次,在AppDelegate中添加以下内容:

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
      [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接