在NavigationLink
中重新格式化Form
时,我似乎遇到了问题。按下NavigationLink
后,通过isActive
激活了我的showNext
。
问题在于,即使通过点击NavigationLink
似乎为Form
创建的空行,即使按钮不存在,NavigationLink
似乎仍被单独激活。应该只是EmptyView
。看来Form
甚至为EmptyViews
创建了行。
所以我在想可能会有一些解决方案,但是我不确定这些解决方案是否可行:
(1)以某种方式完全隐藏了为NavigationLink
/ EmptyView
创建的行,而不禁用导航行为。
(2)覆盖Form
的{{1}}格式,以便在点击时不会被激活。
编辑:似乎选项NavigationLink
可以使用选项2,但是空白部分仍然可见,这在看起来有些古怪的情况下是不可取的。
.disabled(true)
答案 0 :(得分:2)
解决方案是将链接隐藏到某些视图的背景中,如下所示
Form {
Section {
VStack {
Text("Hello")
.background(
NavigationLink(destination: Text("Detail View"), isActive: $showNext)
{ EmptyView() }.disabled(!showNext)
)
}
}
}