SwiftUI:如何使 NavigationLink 不会去任何地方并停留在当前视图
SwiftUI: How to make NavigationLink not go anywhere and stay on current view
我正在我的应用程序中进行一些表单验证,因此我不希望导航 link 转到指定的目的地,除非满足某些条件。那么是否有可能以某种方式将目的地设置为 nil 或类似的,以便在按下导航 link 时不满足条件时它停留在当前视图中?
改用 Button 并在验证后以编程方式激活隐藏的 NavigationLink。这是一个例子
struct DemoView: View {
@State private var isValid = false
var body: some View {
NavigationView {
Button("Validate") {
// some validate code here like
self.isValid = self.validate()
}
.background(
NavigationLink(destination: Text("Destination"), isActive: $isValid) { EmptyView() }
)
}
}
private func validate() -> Bool {
return true
}
}
我正在我的应用程序中进行一些表单验证,因此我不希望导航 link 转到指定的目的地,除非满足某些条件。那么是否有可能以某种方式将目的地设置为 nil 或类似的,以便在按下导航 link 时不满足条件时它停留在当前视图中?
改用 Button 并在验证后以编程方式激活隐藏的 NavigationLink。这是一个例子
struct DemoView: View {
@State private var isValid = false
var body: some View {
NavigationView {
Button("Validate") {
// some validate code here like
self.isValid = self.validate()
}
.background(
NavigationLink(destination: Text("Destination"), isActive: $isValid) { EmptyView() }
)
}
}
private func validate() -> Bool {
return true
}
}