我注意到 TabView 具有不同于 UITabBarController 的另一种行为,每次用户从一个选项卡移动到另一个选项卡时,视图堆栈都会被清除。
我创建了一个小样本来说明我的情况:
struct ContentView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection) {
NavView(id: "A").tabItem { Text("Alpha") }.tag(0)
NavView(id: "B").tabItem { Text("Beta") }.tag(1)
}
}
}
struct NavView: View {
var id: String
var body: some View {
NavigationView {
List {
NavigationLink(destination: Text("Detail \(id)")) { Text(id) }
}
}
}
}
详细视图已消失,因为在NavView
访问另一个选项卡后重新创建了该视图。
问题:有没有办法重新创建旧行为,即在访问另一个选项卡后仍然存在呈现的详细视图?