如何在iOS 7中以编程方式将UIViewControllerBasedStatusBarAppearance更改为YES/NO?

6
我的应用具有黑色背景,但在iOS 7中,状态栏变为透明。因此,我在那里看不到任何东西,只能在角落里看到绿色电池指示器。我该如何将状态栏文本颜色更改为像主屏幕上那样的绿色或橙色?
我知道关于

  1. Set the UIViewControllerBasedStatusBarAppearance to YES in the plist

  2. In viewDidLoad do a [self setNeedsStatusBarAppearanceUpdate];

  3. Add the following method:

    -(UIStatusBarStyle)preferredStatusBarStyle{ 
        return UIStatusBarStyleLightContent; 
    }
    
我该如何通过编程来改变UIViewControllerBasedStatusBarAppearance?提前感谢您的帮助...

1
将以下代码添加到应用程序委托启动方法中:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 这将使整个应用程序的状态栏样式变为白色。 - CoolMonster
可能是重复的问题,参考链接:https://dev59.com/jnjZa4cB1Zd3GeqPbj04 - Sahil Mahajan
2个回答

12
在Info.plist中将“View controller-based status bar appearance”设置为NO。
然后,在您的AppDelegate.m类中的didFinishLaunchingWithOptions方法中添加此内容。
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];

这适用于iOS 7。


11

如其他人所述,需要在您的应用程序的info.plist中添加“View controller-based status bar appearance”,并将其设置为类型:布尔值,值:NO。

供参考:

screenshot

iOS 9中

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];

该方法已被弃用。

所以您可以使用这个:

application.statusBarStyle = UIStatusBarStyleLightContent;

在方法中添加这行代码

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

这段代码位于 appDelegate.m 文件中,它将改变整个应用程序中状态栏文本的颜色。

因此,如果您有任何具有可能为深色或浅色的背景的屏幕,则可以使用以下代码来更改该屏幕中的状态栏颜色:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

希望这能帮到你。


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