感谢您花时间帮助他人。
这是原帖,我发布在这里也希望有更好的运气。谢谢!
我们的 SwiftUI 应用程序最低部署是 iOS 14。仅在 iOS 16 中,我们就一直在努力解决状态栏颜色问题。
我们无法将其颜色/外观从浅色更改为深色。
从现在开始,我们习惯用...来管理外观。
1-当给定条件时,在特定视图中调用,例如不支持暗模式,或者侧菜单已打开
UIApplication.setStatusBarStyle(.darkContent)
Run Code Online (Sandbox Code Playgroud)
2- 在任何 SwiftUI 视图上支持此功能的扩展
import UIKit
extension UIApplication {
class func setStatusBarStyle(_ style: UIStatusBarStyle) {
if let controller = UIApplication.getKeyWindow()?.rootViewController as? ContentHostingController {
controller.changeStatusBarStyle(style)
}
}
}
Run Code Online (Sandbox Code Playgroud)
3-实际上,控制器类
import SwiftUI
import UIKit
class ContentHostingController: UIHostingController<AnyView> {
private var currentStatusBarStyle: UIStatusBarStyle = .default
override var preferredStatusBarStyle: UIStatusBarStyle {
currentStatusBarStyle
}
func changeStatusBarStyle(_ style: UIStatusBarStyle) {
self.currentStatusBarStyle = style …Run Code Online (Sandbox Code Playgroud)