我有一个问题,就是状态栏文本的颜色。我想要将文本的颜色变成白色,但是保持模态视图上的黑色。
我的配置如下:
- Storyboard 的设置为 “在 5.1 中打开” 和“项目部署目标为 7.0”,并且“查看 iOS7 及更高版本”
UITabBarViewController
- 4个
UINavigationControllers
- 每个导航控制器内都有一个自定义的
UIViewController
子类
通过 appearance
将 UINavigationBar 的背景颜色设置为暗色。
View controller-based status bar appearance
设置为 YES
我的 UITabBarViewController
子类具有以下方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
这些方法是在应用程序启动后调用的。
在我的UIViewControllers
子类中,我也有相同的方法调用:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent; // This method never called
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
我也尝试将
-preferredStatusBarStyle
的返回值更改为UIStatusBarStyleDefault
(我知道它应该以黑色绘制文本,但我仍然尝试了一下)。同样的事情也发生在在Storyboard中设置状态栏选项为Light Content。也不起作用。
我知道SO上有很多类似于我的问题,但是提出的解决方案在我的情况下并没有帮助。
我的状态栏仍然看起来像这样:
![StatusBar](https://istack.dev59.com/Jkw6l.webp)