7

我有两个视图控制器——第一个有一个UIStatusBarStyleDefault,第二个有一个UIStatusBarStyleLightContent

VC1 将 VC2 呈现为模态表单。因此,在常规特征集合中呈现时,VC2 呈现为UIModalPresentationFormSheet,VC1 将状态栏设置为Default。但是在 compact trait collection 中,VC2 是全屏的,并将状态栏样式设置为Light Content

问题是在常规到紧凑(全屏到表单)之间切换时,状态栏没有更新。

全分屏

尝试 - [self setNeedsStatusBarAppearanceUpdate]; 特征集合更改后没有解决问题。

任何帮助都感激不尽!

4

1 回答 1

1
// This controls whether this view controller takes over control of the status bar's appearance when presented non-full screen on another view controller. Defaults to NO.

@available(iOS 7.0, *)
public var modalPresentationCapturesStatusBarAppearance: Bool

用法:

navigationController.modalPresentationStyle = .FormSheet
navigationController.modalPresentationCapturesStatusBarAppearance = true

一旦设置了导航控制器的根视图控制器,就可以覆盖preferredStatusBarStyle()

于 2016-05-25T20:58:56.337 回答