模态视图的iOS7状态栏字体颜色

时间:2014-02-04 22:56:26

标签: ios objective-c ios7 modalviewcontroller ios7-statusbar

我正在尝试将我的某个模态视图中状态栏的字体颜色更改为白色。其他视图在app delegate中设置为白色。

我在ViewController中对类似问题的回答中尝试了以下代码。

 - (UIStatusBarStyle)preferredStatusBarStyle {

    return UIStatusBarStyleLightContent;
}

但由于字体仍显示为黑色,因此无效。

对于iOS场景来说相当新,请提供任何建议。

2 个答案:

答案 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