2

给定的是 View1、View2 和 View3。

我将 View2 推到 View1 上。

有没有办法View1 推送 View3 维护导航堆栈?

struct ContentView: View {
@State var selection: String? = nil

var body: some View {
    NavigationView {
        VStack() {
            NavigationLink(destination: Text("secand"), tag: "secand", selection: $selection) { }
            NavigationLink(destination: Text("third"), tag: "third", selection: $selection) { }
            Button("first") {
                selection = "secand"
                DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
                    selection = "third"
                }
            }
        }
    }
}
}

发生的情况是,当延迟块执行 View2 pops 然后 View3 被推送时,我不希望 View2 被弹出。

我希望堆栈为 View1 -> View2 -> View3

有没有一种方法可以让视图处理给定流的导航堆栈,而无需我将NavigationLink每个视图都放入流中。

一个给定的场景为什么我想要这样的东西是:

我有一个 ParentView,它要求用户通过电话或电子邮件从两种不同类型的登录中进行选择。

两种类型都会打开 OTP 验证视图,我不想将 OTP 视图放在NavigationLink电子邮件视图和电话号码视图中,我只想在 ParentView 中共享它。

4

0 回答 0