要保存NavigationLink的选择,可以使用@State或@Binding属性来存储选择的值,并将其传递给目标视图。
下面是一个示例,展示如何保存NavigationLink的选择:
import SwiftUI
struct ContentView: View {
@State private var selectedOption: String? = nil
var body: some View {
NavigationView {
VStack {
if selectedOption == nil {
Text("请选择一个选项")
} else {
Text("选择的选项是:\(selectedOption ?? "")")
}
NavigationLink(
destination: DetailView(selectedOption: $selectedOption),
tag: "OptionA",
selection: $selectedOption
) {
Text("选项A")
}
NavigationLink(
destination: DetailView(selectedOption: $selectedOption),
tag: "OptionB",
selection: $selectedOption
) {
Text("选项B")
}
}
.navigationTitle("选择选项")
}
}
}
struct DetailView: View {
@Binding var selectedOption: String?
var body: some View {
VStack {
Text("选择的选项是:\(selectedOption ?? "")")
Button("返回") {
selectedOption = nil
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在上面的示例中,我们在ContentView中使用@State属性selectedOption来存储选择的值。然后,将selectedOption作为参数传递给目标视图DetailView,并使用@Binding属性来接收和更新选择的值。
在NavigationView中,我们使用NavigationLink来创建选项。每个NavigationLink都有一个唯一的tag,用于标识选择。当用户选择一个选项时,selectedOption会更新为对应的tag值,从而触发导航到目标视图。
在目标视图DetailView中,我们可以访问和显示选择的选项,并提供一个返回按钮来重置选择。
这就是保存NavigationLink选择的一种解决方法。您可以根据自己的需求进行调整和扩展。
上一篇:保存MVC 5时遇到尾随点问题
下一篇:保存n个先前的训练权重