如何在 SwiftUI 中保留 View 结构列表?
How can I keep a list of View structs in SwiftUI?
由于 SwiftUI 的 NavigationView
非常死板,没有提供一种简单的编程导航方式,我想创建一个 AppNavigationView
,它有一个视图数组,并根据 push/pop.
因为 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]
Swift 不允许使用协议作为成员类型,所以最接近的是使用
@State private var navigationStack: [AnyView]
//...
public func pushView<V:View>(view: V) {
navigationStack.append(AnyView(view))
}
由于 SwiftUI 的 NavigationView
非常死板,没有提供一种简单的编程导航方式,我想创建一个 AppNavigationView
,它有一个视图数组,并根据 push/pop.
因为 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]
Swift 不允许使用协议作为成员类型,所以最接近的是使用
@State private var navigationStack: [AnyView]
//...
public func pushView<V:View>(view: V) {
navigationStack.append(AnyView(view))
}