SwiftUI CoreData Отношение "многие к одному" Передает данные в childView - PullRequest
0 голосов
/ 06 августа 2020

даже несмотря на то, что удалось настроить 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?

Надеюсь, вы мне поможете. Большое спасибо, Андре

...