首页 > 解决方案 > 在选项卡之间移动时如何保留推送视图?

问题描述

我注意到 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访问另一个选项卡后重新创建了该视图。

问题:有没有办法重新创建旧行为,即在访问另一个选项卡后仍然存在呈现的详细视图?

标签: iosswiftuiios-navigationview

解决方案


推荐阅读