SwiftUI NavigationView 不记得状态
Posted
技术标签:
【中文标题】SwiftUI NavigationView 不记得状态【英文标题】:SwiftUI NavigationView not remember the state 【发布时间】:2019-10-11 05:10:44 【问题描述】:我在 SwiftUI 中使用 NavigationView 时遇到了问题。
我在 TabView 中嵌入了一个 NavigationView,如下所示:
var body: some View
TabView
NavigationView
View1()
.tabItem Text("View 1")
.tag(1)
View2()
.tabItem Text("View 2")
.tag(2)
在第一个选项卡上,我已将多个视图推送到 NavigationView
,但是当切换到第二个选项卡然后切换回第一个选项卡时,NavigationView
再次变为 View1()
,所有推送的视图都将被删除.如下所示:
预期的行为是当切换到第一个选项卡时,显示付款视图而不是主页。
有没有办法把NavigationView的状态放到一个外部的@EnvironmentObject
,比如切换后NavigationView
的状态保持不变。
【问题讨论】:
可以查看这个答案:***.com/questions/57772137/… 【参考方案1】:是的,有一种非常简单的方法可以通过 NavigationLink 使用状态。 有一个可选属性 isActive 你给了一个@Binding 变量,它也可以来自一个外部环境对象,使用可观察对象内的@Published 属性。 如果您想了解更多关于 SwiftUI NavigationView 的信息,包括导航链接,请考虑查看 Paul Hudson 的这篇很棒的 video。它对我个人帮助很大。
【讨论】:
以上是关于SwiftUI NavigationView 不记得状态的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 弹出框在 NavigationView 中时消失
SwiftUI:检测 tvOS 上 NavigationView 中的选择更改