如何解决刷新 SwiftUI 父视图会导致子视图刷新吗?
我有一个 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 举报,一经查实,本站将立刻删除。