如何在SwiftUI中创建多视图深度NavigationView?

问题描述 投票:0回答:1

我正在为 iOS 应用程序创建一个入门流程,其 UI 是用

SwiftUI

编写的

SwiftUI
有一个
NavigationView
UI 组件,使用
NavigationLinks
使用户能够移至下一个视图

但是,互联网上的大多数示例仅提供一级视图深度。这意味着只有根视图中的一个视图被放入导航堆栈中。

在入门流程中,用户将从之前的视图移至下一个视图,并且只能导航回上一个视图。需要多个视图。

图: 导航视图 - 电子邮件/密码查看 -- 入职屏幕 1 --- 入门屏幕 2 ----等等

我应该将导航链接放在哪里来导航到每个视图?它们是否存在于通过变量切换的根视图中?或者它们是否存在于堆栈上的每个连续视图中?如果我尝试将 NavigationLinks 放入每个视图中,Xcode 会抱怨所述子视图中没有 NavigationView。

在 SwiftUI 中实现这种导航的正确方法是什么?

ios swift xcode swiftui navigationview
1个回答
0
投票

这是从一个视图到其他视图并再次返回的非常简单的导航。

如果您想完全控制序列,请使用

NavigationStack(path: $path) {...}
.navigationDestination(...)
如文档和许多 SO 帖子中所述。

struct ContentView: View {
    var body: some View {
        NavigationStack {
            NavigationLink("to View1", destination: View1())
        }
    }
}

struct View1: View {
    var body: some View {
        NavigationLink("to View2", destination: View2())
    }
}

struct View2: View {
    var body: some View {
        NavigationLink("to View3", destination: View3())
    }
}

struct View3: View {
    var body: some View {
        Text("View3")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.