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


当前回答

这些对我来说都没用,所以这里有一个有效的解决方案……

在信息。Plist,添加一行:

UIViewControllerBasedStatusBarAppearance,并设置值为NO。

然后在AppDelegate的didFinishLaunchingWithOptions中添加这些行:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

其他回答

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

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

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

在iOS 8中: add NavigationController.NavigationBar.BarStyle = UIBarStyle.Black;对viewDidLoad

我必须为swift和导航控制器做些什么

extension UINavigationController {
    override open var preferredStatusBarStyle: UIStatusBarStyle {
       return .lightContent
    }   
}

只需以下两步:

步骤1:

在项目目标的Info选项卡下,添加行:

UIViewControllerBasedStatusBarAppearance,设置值NO。

步骤2:

在项目AppDelegate.m中:

- (BOOL)application:(UIApplication *)application 
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    …
    [application setStatusBarStyle:UIStatusBarStyleLightContent];
    …
}

如果你有一个通过Interface Builder创建的嵌入式导航控制器,请确保在管理导航控制器的类中设置以下内容:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

这应该就是你所需要的。