ios - NavigationLink 在 swiftUi 中重复
问题描述
struct Conte111ntView: View {
@State private var selection: String? = nil
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: Text("Second View : click go to ThirdView ") .navigationBarTitle("Navigation").navigationBarHidden(true).gesture(TapGesture().onEnded{ v in
self.selection = "Third"
}), tag: "Second", selection: $selection) { EmptyView() }.isDetailLink(true)
NavigationLink(destination: Text("Third View : click go to SecondView ") .navigationBarTitle("Navigation").navigationBarHidden(true).gesture(TapGesture().onEnded{ v in
self.selection = "Second"
}), tag: "Third", selection: $selection) { EmptyView() }.isDetailLink(true)
Button("Tap to show second") {
self.selection = "Second"
}
Button("Tap to show third") {
self.selection = "Third"
}
}
.navigationBarTitle("Navigation").navigationBarHidden(true)
}
}
}
struct test_Previews: PreviewProvider {
static var previews: some View {
Conte111ntView()
}
}
我想要第二个视图 -> 第三个视图
,但 swiftUi 行为是:第二个视图 -> rootView -> 第三个视图
并在 'click go to ThirdView' 中快速点击,然后,'Third View' 会出现错误行为。 return to rootView
如何解决这个问题还是我做错了?</p>
解决方案
下面是一个更简单的版本。
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: SecondView()) {
Text("Second View : click go to ThirdView")
}
Spacer()
NavigationLink(destination: ThirdView()) {
Text("Third View : click go to SecondView")
}
}
}
.navigationBarHidden(false)
}
}
struct SecondView: View {
var body: some View {
Text("SecondView is here!")
}
}
struct ThirdView: View {
var body: some View {
Text("ThirdView is here!")
}
}
推荐阅读
- ruby-on-rails - 缺少必需的参数:aws_access_key_id、aws_secret_access_key (ArgumentError) bin/rake assets:precompile RAILS_ENV=production
- ipmi - IPMI 属于哪个 OSI 层?
- javascript - 在纯 JavaScript 中只允许粘贴数字而不使用输入数字
- java - 单元测试:比较文件生成断言返回 false
- c# - Visual Studio 2017 在抛出异常时中断(也处理异常)
- jackson - jackson 无法反序列化(spring cloud stream kafka)
- java - 空白时 JLabel 不占用空间(Java)
- php - 它可能使用不带名称的 get_meta_tags 吗?
- windows - 为目录下的所有文件添加自动编号前缀
- c# - 无法处理 TableLayoutPanel 中的 PictureBox.DrawImage