且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

登录后的 SwiftUI 导航

更新时间:2023-12-05 11:32:46

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

There should only be one NavigationView per navigation stack. You need to remove all nested NavigationViews except the top one. In your child views you still can modify the top one.

这是一个简单的演示:

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 中测试.

Tested in Xcode 11.6, iOS 13.6.