swiftui-将视图保存到变量
我有以下资料:swiftui-将视图保存到变量,swiftui,Swiftui,我有以下资料: struct Event: Identifiable { let id: Int let name: String let image: String } let events = [ Event(id: 0, name: "Host Tournament", image: "cup"), Event(id: 1, name: "Post Club Info", image: "shield"), Event(id: 3, nam
struct Event: Identifiable {
let id: Int
let name: String
let image: String
}
let events = [
Event(id: 0, name: "Host Tournament", image: "cup"),
Event(id: 1, name: "Post Club Info", image: "shield"),
Event(id: 3, name: "Share A Post", image: "write")
]
我希望每个事件都能有一个独立的观点
例如事件(id:0,名称:“主办锦标赛”,图像:“奖杯”,目的地视图:PostView())
因此,在循环事件时,我可以将destinationView传递到NavigationLink。我不确定PostView()应该在我的结构中定义为什么类型
这就是我目前正在做的:
ForEach(events) { event in
NavigationLink(destination: //PASS VIEW HERE FROM EVENT) {
VStack {
Image(event.image)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 100, height: 100)
.padding(55)
Text(event.name)
.font(.system(.headline))
.padding(.bottom,20)
}
.padding()
.border(Color.black, width: 4)
.cornerRadius(10)
}.buttonStyle(PlainButtonStyle())
}
我希望能够根据其循环通过的事件传入视图。这是纯粹的设计,将模型与视图紧密耦合。。。但如果你愿意,从技术上讲,可以用以下方法
let events = [
Event(id: 0, name: "Host Tournament", image: "cup",
destinationView: AnyView(PostView())),
Event(id: 1, name: "Post Club Info", image: "shield",
destinationView: AnyView(ClubView())),
Event(id: 3, name: "Share A Post", image: "write",
destinationView: AnyView(StoryView()))
]
你说的独立观点是什么意思?不同类型?你能提供更多细节吗?刚刚更新了我的问题@Asperii我想你可能误解了我,我已经提出了更多细节问题
let events = [
Event(id: 0, name: "Host Tournament", image: "cup",
destinationView: AnyView(PostView())),
Event(id: 1, name: "Post Club Info", image: "shield",
destinationView: AnyView(ClubView())),
Event(id: 3, name: "Share A Post", image: "write",
destinationView: AnyView(StoryView()))
]