在UIStatusBar上显示UIWindow后,UIStatusBarStyle发生了变化

时间:2013-10-27 10:37:10

标签: ios xcode uiwindow uistatusbar

我正在UIStatusBar上显示UIWindow,默认情况下UIStatusBarStyle设置为UIStatusBarStyleLightContent,但是当我显示UIWindow UIStatusBarStyle个切换时黑色风格。

4 个答案:

答案 0 :(得分:13)

我在遇到同样的问题时遇到了这个话题。您需要做的是创建一个新的视图控制器并将其设置为UIWindow的根视图控制器(即您在其他视图上显示的UIWindow)。然后,在这个新的视图控制器中实现preferredStatusBarStyle方法,如下所示:

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

或者,您可以设置"查看基于控制器的状态栏外观"将Info.plist中的属性设置为NO,并按照Azabella的建议实施[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]方法。但是,这会将所有视图的状态栏设置为白色。如果没有问题,那么只需设置preferredStatusBarStyle方法就不需要创建单独的视图控制器。

答案 1 :(得分:1)

您是否已将AppName-Info.plist中的“基于控制器的状态栏外观视图”属性设置为否?

答案 2 :(得分:0)

添加此项,以便在视图出现时设置颜色/样式

-(void)viewDidAppear:(BOOL)animated {

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}

答案 3 :(得分:0)

这是一个相当琐碎的问题,我发现将modalPresentationCapturesStatusBarAppearance设置为true即可解决。