问题描述
我有一个 TabView
,有 2 个标签,TabA 和 TabB。两者都是围绕主视图的 NavigationView
,并且每个主视图都有多个 NavigationLink
到子视图。我想支持以下 2 个功能:
-
能够导航到 TabA 的任何子项,单击 Tab B,单击返回 TabA,然后查看与交换选项卡之前完全相同的子视图。据我了解,这是为 iOS14 构建时 SwiftUI 的现有功能。
-
能够导航到 TabA 的任何子项,单击 Tab B,单击返回 TabA,再次单击 TabA,然后转到 TabA 的根视图。我在 Facebook、Twitter 等其他应用中看到了此功能。
我的计划是在 TabA 的根视图中添加一个 id
,并通过在用户单击同一选项卡两次时重置它来使该 id
无效,从而刷新根视图并导致我的 NavigationView
返回到根视图。我从以下帖子 (https://designcode.io/swiftui-handbook-tabbar-to-root-view) 中得到了这个想法。但是,我注意到这会导致功能 #1 中断,因为当我离开 TabA 并返回时,子视图也已刷新。
这是由于父视图刷新,并导致此子视图也刷新吗?我没有将任何 @Binding
从父视图传递给子视图,也没有任何子视图构造函数的参数。
是否有另一种纯 SwiftUI 方法来支持功能 #2?我刚刚开始学习 SwiftUI,但不确定如何强制我的 TabView 导航到根视图。
在此先感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)