我在 SwiftUI 中使用 NavigationView 时遇到了以下问题。
我在 TabView 中嵌入了一个 NavigationView,如下所示:
var body: some View {
TabView {
NavigationView {
View1()
}
.tabItem { Text("View 1") }
.tag(1)
View2()
.tabItem {Text("View 2") }
.tag(2)
}
}
在第一个选项卡上,我将多个 View 推送到
NavigationView
,但是当切换到第二个选项卡然后切换回第一个选项卡时,NavigationView
成为View1()
同样,所有推送的 View 都将被删除。证明如下:预期行为是切换到第一个选项卡时,显示付款 View 而不是主页。
无论如何将 NavigationView 的状态置于外部
@EnvironmentObject
,例如,使 NavigationView
的状态切换后保持不变。
最佳答案
是的,有一种非常简单的方法可以通过 NavigationLink 使用状态。
有一个可选的属性 isActive 你给一个 @Binding 变量,它也可以来自外部环境对象,使用可观察对象内的@Published 属性。
如果您想了解更多关于 SwiftUI NavigationView 的信息,包括导航链接,请考虑查看这个很棒的 video通过保罗 hudson 。它对我个人帮助很大。
关于SwiftUI NavigationView 不记得状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58334589/