使用SplitViewController时如何更改状态栏的颜色?当仅将视图控制器与导航控制器一起使用时,状态栏的颜色将通过①自动更改。有什么方法可以自动更改状态栏?
我想向应用程序添加暗模式,因此,我无法从项目/目标设置中更改状态栏样式。
在我的应用中,我有一个通知,可以打开和关闭我的黑暗模式设置。
我尝试过
①self.navigationController?.navigationBar.barStyle = .black
②更改info.plist
③Status bar Light content doesnot appear in Navigation Controller using Split view controller
答案 0 :(得分:1)
您可以在下面使用扩展名。他们得到preferredStatusBarStyle
从嵌入式ViewController。您只需要在自定义ViewController中覆盖preferredStatusBarStyle
extension UISplitViewController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
let master = viewControllers.first
return master?.preferredStatusBarStyle ?? .default
}
}
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
extension UITabBarController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return selectedViewController?.preferredStatusBarStyle ?? .default
}
}