даже несмотря на то, что удалось настроить Core Data, сложно понять, как передавать данные в ChildView / DetailViews.
Я установил Core Data с отношением «один ко многим».
(Один): Bean.entity () <- (Многие): Shot.entity () </p>
Из BeanList я передаю выбранный Bean в BeanDetailView с помощью «bean: bean», он работает нормально. Код:
import SwiftUI
struct BeanList: View {
@FetchRequest(entity: Bean.entity(), sortDescriptors: []) var beans: FetchedResults<Bean>
var body: some View {
NavigationView {
List {
ForEach(beans, id: \.id) { bean in
NavigationLink(destination: BeanDetailView(bean: bean)) {
Image(uiImage: UIImage(data: bean.img ?? self.imageAlt)!)
// deleted the rest, cause not relevant for my problem.
}
}
}
}
}
}
В BeanDetailView я беру выбранный bean-компонент с помощью: "var bean: Bean", и он работает. это список снимков.
import SwiftUI
struct BeanDetailView: View {
@FetchRequest(entity: Bean.entity(), sortDescriptors: []) var beans: FetchedResults<Bean>
// selected Bean from ListView "BeanDetailView(bean: bean)"
var bean: Bean
var body: some View {
List {
ForEach(bean.shotArray, id: \.self) { shot in
NavigationLink(destination: ShotDetail()) { // <-- Code here <---
Text("\(shot.time)")
// deleted the rest, cause not relevant for my problem.
}
}
}
}
}
Теперь мой вопрос:
Как я могу передать выбранный снимок ShotDetail? Я пробовал «ShotDetail (shot: shot)» или «shot: bean.shotArray» и c. но я не понимаю. А как перенять выбранный снимок в ShotDetail?
Надеюсь, вы мне поможете. Большое спасибо, Андре