设置statusBar样式不起作用Objective-C

时间:2019-06-18 16:56:55

标签: ios objective-c uinavigationbar uistatusbar

我正在尝试更改状态栏样式(状态栏文字的颜色,具体取决于哪一个viewController处于活动状态)

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

但这不起作用。相反,它会使整个navigationBar黑色(而不只是statusbar)。以下都不是:

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

但是,这似乎仅在viewController未嵌入在navController中时才起作用(当我隐藏navBar时,它起作用!)。我的viewController层次结构如下:

tabBarController-> navigationControllers-> viewController

另外:将“基于View Controller的状态栏外观”设置为“是”和“否”没有什么区别。

很高兴能为您提供帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试关注。 将此保存到您的ViewController

-(UIStatusBarStyle)preferredStatusBarStyle{    
    // Add If/else conditions based on which style required on which condition
    return UIStatusBarStyleLightContent;
}

要更改状态栏样式时,请调用此代码。

[self preferredStatusBarStyle];
[self setNeedsStatusBarAppearanceUpdate];