在 Swift 中管理 statusBarStyle 的正确方法是什么?
What is the correct way to manage statusBarStyle in Swift?
我尝试在 info.plist 文件中将键 UIViewControllerBasedStatusBarAppearance
添加到 true 中,然后在 UINavigationController
class 中添加以下代码,其中包含多个 UIViewController
classes.
class HomeNavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
但是,它没有用。
我也尝试过将 navigationBar
的 barStyle
属性 设置为 .black
但这也没有用。
也关注了 ,但这也没有帮助。
请注意:对于未嵌入任何 UINavigationController
中的 UIViewController
class,如果我使用计算 属性 preferredStatusBarStyle
,则它可以工作。
@Anuranjan Bose 在您的视图加载时尝试此操作,
override func viewDidLoad() {
super.viewDidLoad()
setNeedsStatusBarAppearanceUpdate()
}
在 viewDidAppear()
中尝试 UINavigationController
class:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
navigationController?.navigationBar.barStyle = .black
}
同时添加(与上面相同的class):
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
我尝试在 info.plist 文件中将键 UIViewControllerBasedStatusBarAppearance
添加到 true 中,然后在 UINavigationController
class 中添加以下代码,其中包含多个 UIViewController
classes.
class HomeNavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
但是,它没有用。
我也尝试过将 navigationBar
的 barStyle
属性 设置为 .black
但这也没有用。
也关注了
请注意:对于未嵌入任何 UINavigationController
中的 UIViewController
class,如果我使用计算 属性 preferredStatusBarStyle
,则它可以工作。
@Anuranjan Bose 在您的视图加载时尝试此操作,
override func viewDidLoad() {
super.viewDidLoad()
setNeedsStatusBarAppearanceUpdate()
}
在 viewDidAppear()
中尝试 UINavigationController
class:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
navigationController?.navigationBar.barStyle = .black
}
同时添加(与上面相同的class):
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}