我的应用程序背景是黑色的,但在iOS 7中,状态栏变成了透明的。所以我什么也看不见,只有角落里的绿色电池指示灯。如何将状态栏文本颜色改为白色,就像在主屏幕上一样?


当前回答

如果你想用Swift得到同样的结果,你可以在你的AppDelegate.swift文件中使用下面的代码:

UINavigationBar.appearance().barStyle = .BlackTranslucent

你的状态栏的文本将是白色的:-)!

其他回答

或者,你可以选择退出基于视图控制器的状态栏外观:

在Info.plist中设置“基于视图控制器的状态栏外观”为“NO”。 调用[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

注意:此方法在iOS9中已弃用。在UIViewController上使用preferredStatusBarStyle代替。(见苹果开发者库)

我做了一些不同的事情,这对我很有效。

在没有更改代码的情况下,我像这样配置了.plist文件:

基于控制器的状态栏外观>否 状态栏样式> UIStatusBarStyleLightContent(简单字符串)

我希望这能有所帮助。

edit

对于每个视图控制器,我改变“状态栏”的模拟度量属性,在故事板中,从“推断”到“轻内容”

在ios7上,如果你想使用UIViewControllerBasedStatusBarAppearance == YES,并且你的根视图控制器是UINavigationController,你应该这样做 子类化它并重载childViewControllerForStatusBarStyle,例如:

- (UIViewController*) childViewControllerForStatusBarStyle
{
    return self.viewControllers.lastObject;
}

在这之后,preferredStatusBarStyle将在被推送的视图控制器上被调用。

在AppDelegate。M,添加以下内容。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

在Plist文件中,将“基于视图控制器的状态栏外观”设置为NO。

在信息。plist设置字段值NO查看基于控制器的状态栏外观,并在目标>常规设置中设置状态栏样式灯。