のときに がアクティブになるSwiftUI
のを防ぐことはできません。この単純なコードでは、詳細ページを表示するかどうかを決定する前に、何らかのビジネス チェックを行う必要があります (実際のアプリでは、ボタンのアクション内で何らかのビジネス ロジックが発生する可能性があります):NavigationLink
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
編集
ScrollView
実際のアプリにアイテムのリストがあるため、 List を置き換えることができないためForEach
、使用を検討して回答を投稿しないでくださいScrollView
。