编程导航在 SwiftUI 中始终是一个挑战。在 iOS 16 和 SwiftUI 4.0 中,我们终于得到了类似于 call 的方法,UINavigationController它NavigationStack充当根视图并在根视图上管理视图堆栈。注意:从 iOS 16 开始不推荐使用NavigationView,取而代之的是NavigationStack
用户可以通过单击或点击将视图添加到堆栈顶部NavigationLink
推送的视图将使用内置的、适合平台的控件(例如后退按钮或滑动手势)来删除或弹出。
注意:堆栈始终显示尚未删除的最近添加的视图,并且不允许删除根视图。
第 1 步:navigationDestination(for:destination:)要创建导航链接,请通过在堆栈的视图层次结构中添加修饰符来将视图与数据类型相关联。
NavigationStack {
List(parks) { park in
...
}
.navigationDestination(for: Park.self) { park in
ParkDetails(park: park)
}
}
第 2 步:初始化NavigationLink表示同种数据的实例的 a。以下堆栈显示了显示ParkDetails类型数据的导航链接的视图Park:
NavigationStack {
List(parks) { Park in
Navigat