在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
的状态保持不变。
答案 0 :(得分:0)
是的,在导航链接中使用状态非常简单。 有一个可选属性isActive,您可以给它提供一个@Binding变量,该变量也可以使用可观察对象内部的@Published属性来自外部环境对象。 如果您想了解更多有关SwiftUI NavigationView(包括导航链接)的信息,请考虑查看Paul Hudson的这份出色的video。它对我个人有很大帮助。