我有两个视图控制器 - 第一个有UIStatusBarStyleDefault
,第二个有UIStatusBarStyleLightContent
。
VC1将VC2作为模态表格提交。因此,当呈现常规特征收集时,VC2显示为UIModalPresentationFormSheet
,VC1将状态栏设置为默认。
但在紧凑的特征收集中,VC2是全屏的,并将状态栏样式设置为轻量级内容。
问题是当从常规到紧凑(全屏到表单)之间切换时,状态栏没有更新。
尝试 - [self setNeedsStatusBarAppearanceUpdate]; 特征收集改变后没有解决问题。
非常感谢任何帮助!
答案 0 :(得分: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()