Swiftui 登录后的快捷界面导航

Swiftui 登录后的快捷界面导航,swiftui,swiftui-navigationlink,Swiftui,Swiftui Navigationlink,我准备了两个视图,分别是签名视图和主视图。在用户登录到主视图后,我尝试弹出/隐藏签名视图 现在的问题是该视图允许用户单击“上一步”按钮返回登录视图。我不知道怎么解决这个问题。谁能给我一些提示吗 这是我的登录导航码: NavigationLink(destination: HomePageView(), tag: 1, selection: $selection) { Button(action: { print("Register tapped")

我准备了两个视图,分别是签名视图和主视图。在用户登录到主视图后,我尝试弹出/隐藏签名视图

现在的问题是该视图允许用户单击“上一步”按钮返回登录视图。我不知道怎么解决这个问题。谁能给我一些提示吗

这是我的登录导航码:

NavigationLink(destination: HomePageView(), tag: 1, selection: $selection) {
    Button(action: {
        print("Register tapped")
        self.verify()
        self.selection = 1
    }) {
        HStack {
            Text("OK").foregroundColor(Color.white).bold().foregroundColor(.white)
                .frame(width: UIScreen.main.bounds.width - 30, height: UIScreen.main.bounds.height / 12)
                .background(Color.orange)
                .cornerRadius(35.0)
                .font(.headline)
                .padding()
        }
    }
}

你似乎需要一个完整的屏幕而不是另一个视图。通过这种方式,您将能够仅根据自己的要求轻松地呈现和消除视图。 要获得比我在这里解释的更完整的信息,请查看Paul Hudson在其网站上的解释:

每个导航堆栈应该只有一个
导航视图。您需要删除除顶部导航视图之外的所有嵌套导航视图。在子视图中,您仍然可以修改顶部视图

下面是一个简单的演示:

struct LoginView: View {
    @State private var active: Bool = false

    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: HomeView(), isActive: self.$active) {
                    Text("Register")
                }
            }
            .navigationBarTitle("Login View")
        }
    }
}

struct HomeView: View {
    var body: some View {
        Text("inside home view")
            .navigationBarTitle("Home view")
            .navigationBarBackButtonHidden(true)
    }
}

在Xcode 11.6和iOS 13.6中测试。

为什么不隐藏后退按钮?这里有很多这样做的例子。对不起,我可以知道这样做是正确的吗?你可以做任何公众允许的事情API@Asperi我试图隐藏后退按钮,但导航栏仍然在那里。我的主视图得到了另一个导航视图。因为有两个导航视图。@pawello2222,但在我的主视图中,它包含包含导航视图的选项卡栏。那么她现在做什么呢。这意味着我得到了两个独立的代码寄存器部分和一个家庭。