我正在尝试将我的某个模态视图中状态栏的字体颜色更改为白色。其他视图在app delegate中设置为白色。
我在ViewController中对类似问题的回答中尝试了以下代码。
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
但由于字体仍显示为黑色,因此无效。
对于iOS场景来说相当新,请提供任何建议。
答案 0 :(得分:1)
您需要将当前代码与Info.plist中的View controller-based status bar appearance
键设置为YES一起使用。
这里缺少的一个难题是,你还需要告诉iOS你想要一个状态栏更新:
- (void)setNeedsStatusBarAppearanceUpdate;
这是UIViewController上的一个方法。像这样在viewDidLoad
中调用它:
- (void)viewDidLoad
{
[self setNeedsStatusBarAppearanceUpdate];
...
请注意,它仅适用于iOS 7并在iOS 6及更低版本上引发异常,因此在我的所有项目中,我都有#define
这样的内容:
#define kIs7 ([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending)
然后,在iOS 6及更低版本上不运行iOS 7专用方法非常简单:
if (kIs7) [self setNeedsStatusBarAppearanceUpdate];
答案 1 :(得分:0)
这就是将状态栏颜色更改为白色的方法。如果它不起作用,那么您可能尚未在Info.plist
中启用基于视图控制器的状态栏外观。
确保添加以下密钥,并将其值设置为YES
View controller-based status bar appearance