好吧,我在这里疯了。这是我的代码:
.plist
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
覆盖
extension UINavigationController {
open override var childForStatusBarStyle: UIViewController? {
return topViewController
}
open override var childForStatusBarHidden: UIViewController? {
return topViewController
}
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
extension UITabBarController {
open override var childForStatusBarStyle: UIViewController? {
return children.first
}
open override var childForStatusBarHidden: UIViewController? {
return children.first
}
}
View Controller
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
我已经哭到要更新了:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
setNeedsStatusBarAppearanceUpdate()
}
我知道以前有人问过并回答过这个问题,而且我已经浏览了平台上的大部分答案(如果不是全部的话),但没有一个可以提供帮助。我不知道该怎么办了。 请帮忙
哦,我也试过了
navigationController?.navigationBar.barStyle = .black
没有调用任何覆盖方法。
谢谢
Best Answer-推荐答案 strong>
请试试这个,它会帮助你。
在 AppDelegate 类的 didFinishLaunchingWithOptions 方法中写这个。
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
这可能对你有帮助,谢谢。
关于ios - 未调用 PreferredStatusBarStyle,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/54090035/
|