preferredStatusBarStyle

preferredStatusBarStyle

我正在编写具有多个 View 的iOS应用。我将应用程序设置为使用基于ViewController的状态栏样式,这使我可以使用以下代码

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

效果如预期。

但随后,我将 View 嵌入了导航 Controller 中,并将BarButtonItem与showSegue连接起来。从那时起, View 的ViewController切换为忽略样式设置,并显示默认的黑色状态栏。

最佳答案

当您在导航 Controller 中时,不会被调用。导航 Controller 的preferredStatusBarStyle将被调用。将此与您的代码一起尝试:

extension UINavigationController {

   open override var preferredStatusBarStyle: UIStatusBarStyle {
      return topViewController?.preferredStatusBarStyle ?? .default
   }
}

10-08 12:18