SwiftUI:NavigationLink在窗体内无意中被点击并激活

时间:2020-04-28 18:55:40

标签: swift forms swiftui navigationlink

NavigationLink中重新格式化Form时,我似乎遇到了问题。按下NavigationLink后,通过isActive激活了我的showNext

问题在于,即使通过点击NavigationLink似乎为Form创建的空行,即使按钮不存在,NavigationLink似乎仍被单独激活。应该只是EmptyView。看来Form甚至为EmptyViews创建了行。

所以我在想可能会有一些解决方案,但是我不确定这些解决方案是否可行:

(1)以某种方式完全隐藏了为NavigationLink / EmptyView创建的行,而不禁用导航行为。

(2)覆盖Form的{​​{1}}格式,以便在点击时不会被激活。

编辑:似乎选项NavigationLink可以使用选项2,但是空白部分仍然可见,这在看起来有些古怪的情况下是不可取的。

.disabled(true)

1 个答案:

答案 0 :(得分:2)

解决方案是将链接隐藏到某些视图的背景中,如下所示

Form {
 Section {
   VStack {
      Text("Hello")
        .background(
           NavigationLink(destination: Text("Detail View"), isActive: $showNext)
             { EmptyView() }.disabled(!showNext)
         )
     }
   }
}
相关问题