在UIStatusBar上显示UIWindow后,UIStatusBarStyle发生了更改

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

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

 - (UIStatusBarStyle) preferredStatusBarStyle { return UIStatusBarStyleLightContent; } 

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

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

 -(void)viewDidAppear:(BOOL)animated { [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; } 

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