【问题标题】:How can I keep a list of View structs in SwiftUI?如何在 SwiftUI 中保留视图结构列表?
【发布时间】:2020-08-22 05:04:26
【问题描述】:

由于 SwiftUI 的 NavigationView 非常死板,并且没有为编程导航提供简单的方法,我想创建一个 AppNavigationView,它有一个视图数组并根据推送/弹出更新其渲染视图。

因为 SwiftUI 视图是一个带有关联类型的协议,所以我既不能创建视图数组,也不能在我的 public func pushView(view:View) 中传递一些视图。

那么如何存储视图结构列表?

// Error: Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements.
@State var navigationStack: [View]

【问题讨论】:

    标签: ios swift xcode swiftui swift5


    【解决方案1】:

    Swift 不允许使用协议作为成员类型,所以最接近的是使用

    @State private var navigationStack: [AnyView]
    
    //...
    
    public func pushView<V:View>(view: V) {
       navigationStack.append(AnyView(view))
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多