SwiftUI - TabView 灯光模式 UIColor 出现在预览中,而不是在 Sim 或设备中

SwiftUI - TabView Light Mode UIColor Appears in Preview, not in Sim or Device

我在 MacOS 11.01 上使用 Swift 5.3,并为 iOS 14.2 创建了一个新的“多平台”应用程序。我为 light/dark 模式创建了自定义颜色资源,但无法在我的 TabView 上显示灯光模式背景颜色。 TabView 深色模式背景色显示得很好。

浅色模式背景色在 Xcode 预览中看起来很完美,但是当我 运行 Sim 或我的设备上的应用程序时,标签栏背景色在浅色模式下很清晰,但是显示深色模式的正确颜色。

I use the same color assets for coloring my NavigationView and both the light and dark mode colors appear correctly when the corresponding modes are selected.

最新的 SwiftUI 5.3 和彩色资产是否有明显的遗漏?

我在 TabView

.onAppear 中使用以下代码

UITabBar.appearance().barTintColor = UIColor(named: "barBackground")

请注意,“barBackground”是我创建的自定义颜色集,用于向 NavigationView 和 TabView 添加 light/dark 模式背景颜色。

如果不清楚,我们很乐意提供更多信息。谢谢!

.onAppear 中做有点晚了,应该在创建 受影响的视图之前 更改外观,所以在 init 中做

init() {
    UITabBar.appearance().barTintColor = UIColor(named: "barBackground")
}