使用UIModalPresentationOverFullScreen更改UIStatusbarStyle

时间:2015-03-13 11:08:58

标签: ios xcode uinavigationcontroller statusbar 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; 
}

Nothings似乎有效。任何遇到同样问题的人。我仍然希望以前的控制器处于活动状态但更改UIStatusBarstyle

1 个答案:

答案 0 :(得分:7)

您可以使用

self.modalPresentationCapturesStatusBarAppearance = YES;

在模态控制器中。

来自文档:

  

modalPresentationCapturesStatusBarAppearance 属性

     

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