隐藏时间和电池状态

时间:2014-11-18 16:44:41

标签: ios8 uinavigationbar xcode6

我有一个带导航栏的导航控制器。我的问题是我可以将状态栏设置为白色,但一旦导航栏动画到页面上,它们就会返回黑色。我尝试使用以下内容但没有成功:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[UIApplication sharedApplication.setStatusBarStyle = UIStatusBarStyleLightContent;

-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;

}

仍然是时间,击球手状态等恢复黑色。如果没有人能弄清楚我做错了什么,我会完全消失。提前谢谢。

1 个答案:

答案 0 :(得分:1)

从iOS 8开始,状态栏从当前可见的最顶层视图的视图控制器获取其颜色。尝试在导航控制器上设置以下内容(假设UINavigationController视图是最顶层的视图):

<navController>.navigationBar.barStyle = UIBarStyleBlack;

如果这不起作用,请尝试将覆盖添加到顶级UIViewController中(确保其UIWindow中包含主视图控制器..假设这不是您的UINavigationController ..]):

-(UIStatusBarStyle) preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

同时
在项目的.plist文件中,确保&#34;查看基于控制器的状态栏外观&#34;设置为YES。

<强>替代

如果你想要

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

命令设置效果&#34;查看基于控制器的状态栏外观&#34;在.plist文件中为NO。请注意,虽然基于视图控制器的状态栏是未来的潮流,但某些第三方库(如PSPDFKit)现在需要启用此选项。

隐藏状态栏

如果要隐藏状态栏,可以尝试设置&#34;查看基于控制器的状态栏外观&#34;在.plist文件中为NO。然后将以下代码添加到主视图控制器的viewWillAppear中:

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