我的视图控制器层次结构为SWRevealViewController
- > UINavigationViewController
- > MyController1
。 MyController1
使用MyController2
显示self.present
。 MyController2
不在UINavigationViewController
范围内且演示文稿是模态的(设备是iPhone)。在viewWillAppear
的{{1}}中,我呼叫MyController2
,但系统从不调用self.setNeedsStatusBarAppearanceUpdate()
,状态栏外观保持不变(与preferredStatusBarStyle
相同)。我在这里错过了什么吗?
编辑
MyViewController1
查看基于控制器的状态栏外观设置为info.plist
答案 0 :(得分:4)
在您的info.plist
中查看基于控制器的状态栏外观使其成为是
答案 1 :(得分:3)
我们的问题是容器VC。
因此必须告诉它允许包含(可见)VC调用镜头:
final class ContainerVC: UIViewController {
final var centerVC: UIViewController? // set to an OtherVC elsewhere
override var childViewControllerForStatusBarHidden: UIViewController? {
return centerVC
}
override var childViewControllerForStatusBarStyle: UIViewController? {
return centerVC
}
}
final class OtherVC: UIViewController {
override var prefersStatusBarHidden: Bool {
return true
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
}
答案 2 :(得分:2)
这在我的VC中对我有用...
self.modalPresentationCapturesStatusBarAppearance = true