Ios 有人找到了在Swiftui2中强制使用状态栏样式的方法吗?

Ios 有人找到了在Swiftui2中强制使用状态栏样式的方法吗?,ios,swift,swiftui,Ios,Swift,Swiftui,在SwiftUI 1中,可以使用自定义UIHostingController在preferredStatusBarStyle覆盖中返回所需的状态栏样式。这在SwiftUI 2中不再可能,因为您不直接指定宿主控制器。是否有人找到了一种方法来控制SwiftUI 2中的状态栏样式(整个应用程序都很好)?经过一些实验(以及使用UIViewControllerRepresentable包装的UIViewController的解决方案),我决定尝试将.preferredColorScheme(.dark)添

在SwiftUI 1中,可以使用自定义UIHostingController在preferredStatusBarStyle覆盖中返回所需的状态栏样式。这在SwiftUI 2中不再可能,因为您不直接指定宿主控制器。是否有人找到了一种方法来控制SwiftUI 2中的状态栏样式(整个应用程序都很好)?

经过一些实验(以及使用UIViewControllerRepresentable包装的UIViewController的解决方案),我决定尝试将.preferredColorScheme(.dark)添加到最顶层的ContentView中。奇怪的是,这起作用了,并且正确地将状态栏设置为匹配。当然,它也会更改应用程序的其余部分以匹配,但在我的情况下,这是一个可接受的解决方案。很好的一点是,它不需要对UIKit进行任何修改。

经过一些实验(以及使用UIViewControllerRepresentable包装的UIViewController的解决方案),我决定尝试将.preferredColorScheme(.dark)添加到最顶层的ContentView。奇怪的是,这起作用了,并且正确地将状态栏设置为匹配。当然,它也会更改应用程序的其余部分以匹配,但在我的情况下,这是一个可接受的解决方案。不错的是,它不需要对UIKit进行任何修改。

在我看来,对于生产应用程序来说,这不是一个可行的解决方案。它取代了默认的SwiftUI UIHostingController(不确定是否有完全影响),它两次重新创建整个视图图,并闪烁状态栏。在我看来,对于生产应用程序来说,这不是一个可行的解决方案。它替换默认的SwiftUI UIHostingController(不确定是否完全影响),它两次重新创建整个视图图形,并闪烁状态栏。