У меня есть следующее:
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")
]
Я хочу, чтобы каждое событие могло иметь отдельный вид.
Например Event(id: 0, name: "Host Tournament", image: "cup", destinationView: PostView())
let events = [
Event(id: 0, name: "Host Tournament", image: "cup",destinationView: PostView()),
Event(id: 1, name: "Post Club Info", image: "shield",destinationView: ClubView()),
Event(id: 3, name: "Share A Post", image: "write", destinationView: StoryView())
]
Так что я могу передать destinationView в мой NavigationLink, когда il oop через события. Я не уверен, какой тип 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())
}
Я хочу иметь возможность передавать в зависимости от вида на Событии, которое проходит через.