我正在编写具有多个 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
}
}