我对SwiftUI还是很陌生,导航有些麻烦。
在下面的代码中,我具有按层次结构排列的ContentView,UserView和BobView。
内容视图显示10个用户视图,并且在用户视图内部,有一个名为“单击我导航”的文本可将我导航到鲍勃视图。
我的问题到现在为止,当我单击“单击我进行导航”时,它将导航到我想要的BobView。 但是,滚动时仍可以看到“内容视图和图像内容视图”文本以及其他9个用户。
我知道为什么这样做,但是我不太确定如何解决。我不想在内容视图上创建导航,否则它将在整个BobView()上创建导航,这不是我想要的。我只希望在用户视图中单击Text(“单击我即可导航”)时进行导航。
任何帮助将不胜感激:)
我的代码架构:
node.roles: [master, data]
答案 0 :(得分:2)
struct ContentView: View {
var body: some View {
NavigationView {
ScrollView(.vertical, showsIndicators: false){
VStack {
Text("Content View text")
Image("contentviewimage")
ForEach((1...10), id: \.self) { user in
UserView()
}
}
}
}
}
}
struct UserView: View {
var body: some View {
VStack {
Image("bob")
Text("Hello my name is bob")
NavigationLink(
destination: BobView()){
Text("Click me to navigate").font(.system(size: 20))
}
}
}
}
struct BobView: View{
var body: some View{
VStack{Text("bob view")}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}