我试图将一个目标视图结构传递给另一个视图,但代码无法编译。
我想传递一些符合视图协议的结构体,以便可以在导航按钮目标中使用,但似乎无法编译。我还尝试将destination的类型设置为_View。非常感谢任何建议。
struct AnimatingCard : View {
var title, subtitle : String
var color : Color
var destination : View
init(title : String, subtitle: String, color: Color, destination : View){
self.title = title
self.subtitle = subtitle
self.color = color
self.destination = destination
}
var body: some View {
NavigationButton(destination: destination) {
...
}
}
}
struct DetailView: View { ... }
这样的东西,而且每个AnimatingCard
都有一个目标是DetailView
,那么你可以将其作为destination
的类型。在 Swift 中,由struct
、class
和enum
定义的类型都是“具体”类型。AnyView
类型是 SwiftUI 中的一个特殊struct
,它可以包装任何符合View
协议的类型并隐藏不同的底层类型。 - Jumhyn