如何在 SwiftUI 的标签栏特定视图中隐藏导航栏?

How do I hide navigation bar in the tab bar's specific view in SwiftUI?

XCode11 beta3, MacOS Catalina 10.15 Beta(19A501i)

我想在推送时隐藏tabBar~任何命令都会很有帮助,谢谢~

Click me to show gif image :

struct ContentView : View {
    var body: some View {
        WhenNavigationViewIsRootView()
    }
}

struct WhenNavigationViewIsRootView : View {
    var body: some View {
        NavigationView {
            TabbedView{
                Rectangle().foregroundColor(.green)
                    .tag(0).tabItem{Text("Page1")}

                VStack {
                    List {
                        ForEach(0...2) { i in
                            NavigationLink(
                                destination: Text("\(i)"),
                                label: {Text("\(i)")})
                        }
                    }
                }.tag(1).tabItem{Text("Page2")}
            }
            .navigationBarHidden(true)
        }
    }
}

如果您想在 TabbedView 中隐藏导航栏,您必须在嵌套在 TabbedView 中的视图上设置 .navigationBarHidden(true)。然而,这还不够。无论出于何种原因,SwiftUI 都要求您先设置导航栏标题,然后才能隐藏导航栏。

NavigationView {
    TabbedView{
        Rectangle()
            .foregroundColor(.green)
            .tag(0)
            .tabItem{
                Text("Page1")
            }
            .navigationBarTitle("")
            .navigationBarHidden(true)

        List(0...2) { i in
            NavigationLink(destination: Text("\(i)")) {
                Text("\(i)")
            }
        }
        .tag(1)
        .tabItem {
            Text("Page2")
        }
        .navigationBarTitle("")
        .navigationBarHidden(true)
    }
}