链接 SwithUI 视图时显示多个 NavigationBars
Multiple NavigationBars showing when linking SwithUI Views
我有两个 SwiftUI 视图,它们是我用 NavigationLink 链接的独立文件:
视图 1:
struct ViewOne: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: ViewTwo()
.navigationBarBackButtonHidden(true)
) {
Text("Go to second view")
}
.navigationBarTitle(Text("First View"), displayMode: .inline)
}}}}
视图 2:
struct ViewTwo: View {
var body: some View {
NavigationView {
VStack {
Text("Hello world")
}
.navigationBarTitle(Text("Second View"), displayMode: .inline)
}}}
问题:在 View2 上,我不想要 .navigationBarBackButton,所以我将其设置为隐藏在 ViewOne 中,但因为我将其设置为隐藏,它会与 ViewTwo 上现有的 NavigationBar 混淆并显示多个 NavigationBars
如何禁用 navigationBarBackButton 而不会弄乱 View2 上现有的 NavigationBar?
NavigationView
在一个视图层级中 应该 只有一个,所以只需在 ViewTwo
:
中删除它
struct ViewTwo: View {
var body: some View {
VStack {
Text("Hello world")
}
.navigationBarTitle(Text("Second View"), displayMode: .inline)
}
}
我有两个 SwiftUI 视图,它们是我用 NavigationLink 链接的独立文件:
视图 1:
struct ViewOne: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: ViewTwo()
.navigationBarBackButtonHidden(true)
) {
Text("Go to second view")
}
.navigationBarTitle(Text("First View"), displayMode: .inline)
}}}}
视图 2:
struct ViewTwo: View {
var body: some View {
NavigationView {
VStack {
Text("Hello world")
}
.navigationBarTitle(Text("Second View"), displayMode: .inline)
}}}
问题:在 View2 上,我不想要 .navigationBarBackButton,所以我将其设置为隐藏在 ViewOne 中,但因为我将其设置为隐藏,它会与 ViewTwo 上现有的 NavigationBar 混淆并显示多个 NavigationBars
如何禁用 navigationBarBackButton 而不会弄乱 View2 上现有的 NavigationBar?
NavigationView
在一个视图层级中 应该 只有一个,所以只需在 ViewTwo
:
struct ViewTwo: View {
var body: some View {
VStack {
Text("Hello world")
}
.navigationBarTitle(Text("Second View"), displayMode: .inline)
}
}