ios - 无法超越带有嵌套导航链接的第二页
问题描述
我有一个NavigationView
设置和七个要连续推送的视图。这些视图中的每一个都有一个导航链接。我tag
为每个导航链接使用一个,并使用selection
来自环境变量的绑定来告诉导航视图推送。我的目标是像这样推动这些观点:
A -> B -> C -> D -> E -> F -> G
但是,发生的情况是它像这样弹回根目录:
A -> B -> C(简要)-> A
我确信这是一个错误,但我也在最新的 Xcode 13 beta 中尝试过它,它仍然是一样的,所以也许这是我做错了。
这是我的第一个视图的代码:
struct EventCreationView: View {
@EnvironmentObject var modelController: EventCreationModelController
var body: some View {
VStack {
NavigationView {
VStack {
EventSetupDetailView()
.navigationBarTitle("")
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
ContinueView()
}
.navigationViewStyle(StackNavigationViewStyle())
.edgesIgnoringSafeArea([.bottom])
}
这是我包含在 中的导航链接代码EventSetupDetailView
,以及链接为目的地的所有其他视图:
NavigationLink(
destination: TheNextView()
.navigationBarTitle("")
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true),
tag: 1, // This is changed depending on what page it should show at
selection: $modelController.currentPage,
label: { EmptyView() }
)
在里面ContinueView
我有一个按钮,modelController.currentPage
当它被按下时增加它的值。
为什么这不起作用?我可以看到它modelController.currentPage
没有被重置为零并且每次按下ContinueView
按钮时都会正确递增,所以那里没有问题。推动导航控制器应该非常简单,但这占用了我两天的时间,我无法弄清楚。请帮忙!
更新:当我不使用选择/标签绑定时,只有以下代码用于导航链接,它可以工作:
NavigationLink(
destination: TheNextView()
.navigationBarTitle("")
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
,
label: { Text("Press me") }
)
解决方案
推荐阅读
- c - 堆块在 ... 修改在 ... 过去请求的大小为 4
- python - 数据框 - 将行转换为列 - 按另一列分组
- shell - 即使有效,在 zsh 中也找不到命令
- docker - Ros Docker to ROS non docker 多台机器
- html - 如何将某些身体元素移动到屏幕的不同部分?
- pycharm - 如何在 PyCharm 中启用科学模式?
- java - 并行执行 Java 线程
- javascript - 如何在带有 AJV 错误的错误消息中使用属性名称
- html - 如何使用 css 样式表“npm start”一个 html 文件?
- c++ - STM32 UART中断处理程序缺少rx字节