SwiftUI NavigationView不记得状态了

时间:2019-10-11 05:10:44

标签: swift swiftui

在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() ,所有推送的视图都会被删除。表现为波纹管:

Step By Step

预期的行为是切换到第一个标签时,显示“付款”视图而不是“首页”。

例如,是否存在将NavigationView的状态放置到外部@EnvironmentObject的情况,以便在切换后NavigationView的状态保持不变。

1 个答案:

答案 0 :(得分:0)

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