Ios 如何使状态栏文本在黑暗模式下单击按钮时变暗?
当我在正常模式下单击Ios 如何使状态栏文本在黑暗模式下单击按钮时变暗?,ios,swift,xcode,ios13,ios-darkmode,Ios,Swift,Xcode,Ios13,Ios Darkmode,当我在正常模式下单击Default按钮时,状态栏样式会发生变化.black 但当我启用暗模式时,状态栏会自动变为白色,并且不会重新更改 我把单独的代码再次更改,但它不会工作 这是我的代码 @objc func defaultbutton() { if #available(iOS 13.0, *) { if traitCollection.userInterfaceStyle == .dark { self.setNeed
Default
按钮时,状态栏样式会发生变化.black
但当我启用暗模式时,状态栏会自动变为白色,并且不会重新更改
我把单独的代码再次更改,但它不会工作
这是我的代码
@objc func defaultbutton()
{
if #available(iOS 13.0, *)
{
if traitCollection.userInterfaceStyle == .dark
{
self.setNeedsStatusBarAppearanceUpdate()
self.navigationController?.navigationBar.barStyle = .black
print("status bar style changing is failing everytime it's enterng here")
}
else
{
self.navigationController!.navigationBar.barStyle = .default
}
}
}
您可以覆盖
viewController
中的preferredStatusBarStyle
属性,将状态栏颜色在暗模式下更改为暗
override open var preferredStatusBarStyle: UIStatusBarStyle {
get {
if traitCollection.userInterfaceStyle == .dark {
return UIStatusBarStyle.darkContent
} else {
return UIStatusBarStyle.default
}
}
}
我已经测试过了,对我来说效果很好。尝试此解决方案,如果您遇到任何问题,请告诉我。我是否应该将此代码放入viewcontroller中的
default
按钮的iAction
,您将覆盖viewcontrollers属性的默认实现。若要在view controller中添加此函数,我必须添加版本检查,即使在这之后,它仍然不起作用@Manikandan确保删除了状态栏中的其他更改,如self.navigationController!。navigationBar.barStyle=.default