【问题标题】:SwiftUI NavigationView not remember the stateSwiftUI NavigationView 不记得状态
【发布时间】: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的状态保持不变。

【问题讨论】:

标签: swift swiftui


【解决方案1】:

是的,有一种非常简单的方法可以通过 NavigationLink 使用状态。 有一个可选属性 isActive 你给了一个@Binding 变量,它也可以来自一个外部环境对象,使用可观察对象内的@Published 属性。 如果您想了解更多关于 SwiftUI NavigationView 的信息,包括导航链接,请考虑查看 Paul Hudson 的这篇很棒的 video。它对我个人帮助很大。

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    相关资源
    最近更新 更多