19

我在 上显示 UIWindow UIStatusBar,默认情况下UIStatusBarStyle设置为UIStatusBarStyleLightContent,但是当我UIWindowUIStatusBarStyle开关显示为黑色样式时。

4

4 回答 4

15

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

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

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

于 2014-04-06T10:23:42.620 回答
1

您是否将 yourAppName-Info.plist 中的“查看基于控制器的状态栏外观”属性设置为 NO ?

于 2013-10-29T23:38:59.580 回答
1

这是一个相当微不足道的问题,我发现设置modalPresentationCapturesStatusBarAppearancetrue.

于 2019-04-29T23:04:01.127 回答
0

添加这个,以便当视图出现时它将设置颜色/样式

-(void)viewDidAppear:(BOOL)animated {

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
于 2013-10-27T10:59:57.057 回答