preferredStatusBarStyle从未被调用过

时间:2017-04-28 05:11:28

标签: ios iphone uistatusbar

我的视图控制器层次结构为SWRevealViewController - > UINavigationViewController - > MyController1MyController1使用MyController2显示self.presentMyController2不在UINavigationViewController范围内且演示文稿是模态的(设备是iPhone)。在viewWillAppear的{​​{1}}中,我呼叫MyController2,但系统从不调用self.setNeedsStatusBarAppearanceUpdate(),状态栏外观保持不变(与preferredStatusBarStyle相同)。我在这里错过了什么吗?

编辑

MyViewController1 查看基于控制器的状态栏外观设置为info.plist

3 个答案:

答案 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