使用UIModalPresentationOverFullScreen更改UIStatusbarStyle

Mar*_*tin 2 xcode statusbar uinavigationcontroller ios uimodalpresentationstyle

我目前UIModalPresenationOverFullScreen用来呈现下一个控制器,此刻我想改变它UIStatusBarStyle.以前的控制器已经得到了UIStatusBarStyleDefault但我想要使用的电流UIStatusBarStyleLightContent.

因为UIModalPresenationOverFullScreen之前的控制器仍然在后台运行.这导致了当前将继承该样式的问题.

在plist文件中,我设置View controller-based status bar appearance为YES,并尝试了一些提示,例如:

[self setNeedsStatusBarAppearanceUpdate];
self.navigationController.navigationBar.barStyle =UIStatusBarStyleLightContent;
- (UIStatusBarStyle)preferredStatusBarStyle { 
      return UIStatusBarStyleLightContent; 
}
Run Code Online (Sandbox Code Playgroud)

Nothings似乎有效.任何遇到同样问题的人.我仍然希望以前的控制器存活但是改变了UIStatusBarstyle.

小智 7

你可以用

self.modalPresentationCapturesStatusBarAppearance = YES;
Run Code Online (Sandbox Code Playgroud)

在模态控制器中.

从文档:

modalPresentationCapturesStatusBarAppearance 属性

指定呈现非全屏的视图控制器是否从呈现视图控制器接管状态栏外观的控制.