0

我有TabView2 个选项卡,TabA 和 TabB。两者都NavigationView围绕着一个主视图,每个主视图都有几个NavigationLink子视图。我想支持以下 2 个功能:

  1. 能够导航到 TabA 的任何子项,单击选项卡 B,然后单击返回 TabA,然后查看子视图与我交换选项卡之前完全相同。据我了解,这是为 iOS14 构建时 SwiftUI 的现有功能。

  2. 能够导航到 TabA 的任何子项,单击 Tab B,单击返回 TabA,再次单击 TabA,然后转到 TabA 的根视图。我看到这个功能在 Facebook、Twitter 等其他应用程序中实现。

我的计划是在 TabA 的根视图中添加一个,并通过在用户两次单击同一选项卡时重置它来id使其无效,从而刷新根视图并导致我返回到根视图。我从以下帖子(https://designcode.io/swiftui-handbook-tabbar-to-root-view)中得到了这个想法。但是,我注意到这会导致功能 #1 中断,因为当我离开 TabA 并返回时,子视图也已刷新。idNavigationView

这是由于父视图刷新,并导致该子视图也刷新吗?我没有将任何@Binding's 从父级传递给子级,也没有任何参数传递给子视图的构造函数。

是否有另一种纯 SwiftUI 方法来支持功能 #2?我刚刚开始学习 SwiftUI,不确定如何强制我的 TabView 导航到根视图。

提前感谢您的帮助!

4

0 回答 0