我无法阻止SwiftUI
'sNavigationLink
在 a 中被激活List
,我有一段简单的代码,在决定是否显示详细信息页面之前,我需要在其中进行某种业务检查(在现实世界的应用程序中,可能有在按钮的操作中发生一些业务逻辑):
struct ContentView: View {
@State var showDetail = false
var body: some View {
NavigationView {
List {
Text("Text 1")
Text("Text 2")
Text("Text 3")
NavigationLink(destination: DetailView(), isActive: $showDetail) {
LinkView(showDetails: $showDetail)
}
}
}
}
}
struct LinkView: View {
@Binding var showDetails: Bool
var body: some View {
Button(action: {
self.showDetails = false
}) {
Text("Open Details")
}
}
}
struct DetailView: View {
var body: some View {
Text("Detail View")
}
}
在这种情况下,如何防止导航链接打开详细信息页面?这是 SDK 中的错误吗?
ps XCode版本:13.3.1
和iOS版本(真机):13.3.1
编辑
我不能用 List 替换,ScrollView
因为我ForEach
在我的真实应用中有一个项目列表,所以不要发布考虑使用的答案ScrollView
。