如何在SwiftUI中的特定视图中隐藏选项卡栏?

时间:2019-07-14 10:45:49

标签: 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)
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果要在TabbedView中隐藏导航栏,则必须在.navigationBarHidden(true)内嵌套的视图上设置TabbedView。但是,这还不够。无论出于何种原因,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)
    }
}