![](/img/trans.png)
[英]SwiftUI - NavigationLink inside of NavigationLink Bug
[英]SwiftUI: NavigationLink unintentionally tappable and activated inside Form
我似乎在将NavigationLink
重新格式化为Form
时遇到问题。 我的NavigationLink
是通过isActive
在按下切换showNext
的按钮时激活的。
问题是NavigationLink
似乎是自行激活的,即使按钮不存在,通过点击Form
似乎为NavigationLink
创建的空行(应该只是EmptyView
。 似乎Form
甚至为EmptyViews
创建了行。
所以我在想可能有一些可能的解决方案,但我不确定这些是否可能:
(1) 在不禁用导航行为的情况下,以某种方式完全隐藏为NavigationLink
/ EmptyView
创建的行。
(2) 覆盖NavigationLink
的Form
格式,使其在点击时不会被激活。
编辑:似乎选项 2 可以使用.disabled(true)
但空白部分仍然可见,这在这似乎有点不合时宜。
struct FormView : View {
@State var showNext: Bool = false
var body: some View {
NavigationView {
Form {
Section {
VStack {
Text("Hello")
NavigationLink(destination: Text("Detail View"), isActive: $showNext)
{ EmptyView() }
}
}
}
}
}
}
解决方案是将链接隐藏到某些视图的背景中,如下所示
Form {
Section {
VStack {
Text("Hello")
.background(
NavigationLink(destination: Text("Detail View"), isActive: $showNext)
{ EmptyView() }.disabled(!showNext)
)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.