刷新 SwiftUI 父视图会导致子视图刷新吗?

问题描述

我有一个 TabView,有 2 个标签,TabA 和 TabB。两者都是围绕主视图的 NavigationView,并且每个主视图都有多个 NavigationLink 到子视图。我想支持以下 2 个功能

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

  2. 能够导航到 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 (将#修改为@)