swift - 如何导航到 NavigationView 内的任何视图
问题描述
我有这 3 个不同的视图,它们都通过NavigationView
. 我正在尝试找到一种方法来导航到较早的页面,NavigationView
但我希望过渡看起来像是在倒退。
struct Testing: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination:testing2()) { Text("Go to two") }
}
.navigationBarTitle("Navigation")
}
}
}
struct testing2 : View {
var body: some View{
VStack {
NavigationLink(destination: testing3()) { Text("Go to third") }
}
.navigationBarTitle("Second Page")
}
}
struct testing3 : View {
var body: some View{
VStack {
Text("Go back to first")
}
.navigationBarTitle("Third Page")
}
}
我已经找到了一个解决方案,它使用了一个可观察对象、一个环境变量以及NavigationLink
.
他们是使导航转换转到特定页面的更简单的解决方案吗?如果它是在当前视图执行向后转换之前的视图?
解决方案
更简单的解决方案是将您的第三个视图修改如下:
struct testing3 : View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View{
VStack {
Button(action: {
self.presentationMode.wrappedValue.dismiss()
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Go back to first")
}
}
.navigationBarTitle("Third Page")
}
}
推荐阅读
- jenkins - 为什么我不能远程连接 Jenkins?
- java - java如何强制刷新url连接
- javascript - Webpack + Express,根据视图提供特定的 js 文件
- flutter - dart/flutter:创建后指定 HSLColor 的饱和度
- android - id_token 缺少使用 OpenID Connect 的 AD FS 2016 的自定义声明
- php - Laravel 项目中的 Voyager 无法在实时服务器上找到 CSS
- spring-boot - 用于 Spring Boot 的自定义 KeyManager 和 TrustManager
- pandas - 大熊猫中的分组总和和平均值并制作数据框
- java - 如何从另一个线程的函数中抛出异常?
- javascript - 正确传递结构(js)