如何更改 SwiftUI 中 NavigationView 的背景颜色?

How to change background color of the NavigationView in SwiftUI?

我正在尝试使用以下代码更改 NavigationView(不是导航栏)的背景颜色:

NavigationView {
    Text("Text")
}
.background(Color.clear)

但是没用。 另外,我尝试更改 UIView 外观:

UIView.appearance().backgroundColor = UIColor.black

但是也不行。

实际结果如下:

期望的结果是:

有人知道怎么做吗?

先看这个结果:

如您所见,您可以像这样设置视图层次结构中每个元素的颜色:

struct ContentView: View {

    init(){
        UINavigationBar.appearance().backgroundColor = .green 
        //For other NavigationBar changes, look here:(
    }

    var body: some View {
        ZStack {
            Color.yellow
            NavigationView {
                ZStack {
                    Color.blue
                    Text("Some text")
                }
            }.background(Color.red)
        }
    }
}

第一个是window:

window.backgroundColor = .magenta

您面临的问题是我们无法移除 SwiftUI 的 HostingViewController 的背景颜色(目前),因此您无法通过视图层次结构看到 navigationView(您所谓的)。您应该等待 API 或尝试伪造导航视图(不推荐)。