如何在 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~任何命令都会很有帮助,谢谢~
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)
}
}
XCode11 beta3, MacOS Catalina 10.15 Beta(19A501i)
我想在推送时隐藏tabBar~任何命令都会很有帮助,谢谢~
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)
}
}