iOS - Core Data - Mehrere NSFetchedResultsController in einem UIViewController

8

Ich versuche eine iPad App zu erstellen, die mit Core Data arbeitet. Aber ich stehe vor einem Design- und Coding-Problem. Angenommen, ich füge einen UIViewController zu meinem Fenster hinzu und innerhalb dieses Viewcontrollers muss ich zwei Tableviews (2 verschiedene Entities) und 2 Views (2 andere Entities) anzeigen (also muss ich 4 Entities für einen UIViewController holen). Ich habe nur Tutorials gefunden, die erklären, wie man NSFetchedResultsController mit einem UITableView verwendet!

Meine Frage ist: Soll ich 2 UITableView und 2 NSFetchedResultsController in meinem ViewController deklarieren? Oder sollte ich 2 UITableViewController deklarieren und dann in jedem von ihnen einen NSFetchedResultsController deklarieren? Was ist mit den zwei anderen Ansichten? Ich sollte NSFetchRequest verwenden? Wenn ja, wo ? innerhalb der Ansichten oder innerhalb des UIViewControllers?

Ich weiß, es ist eine Menge Fragen :). Vielen Dank im Voraus für Ihre Hilfe.

    
Dabrut 20.10.2011, 14:39
quelle

2 Antworten

8

Ja, Sie möchten 2 NSFetchedResultsController verwenden, einen pro UITableView. NSFetchedResultsController übernimmt NSFetchRequest. Daher sollten Sie Ihre NSFetchRequests basierend auf den Daten konfigurieren, die in den UITableViews angezeigt werden sollen.

Sie sollten diese gesamte Steuerungslogik in Ihre UIViewController-Unterklasse einfügen.

Es ist in Ordnung, mehrere UITableViews in einem einzelnen UIViewController zu haben, denken Sie nur an die Delegaten- und Datenquellenmethoden. Sie müssen den UITableView-Parameter testen, um zu sehen, welche Tabelle nach der Daten- / Delegierungsbehandlung fragt.

    
logancautrell 20.10.2011, 14:49
quelle
1

Wie werden zwei Ansichten gleichzeitig angezeigt? Wie auch immer Sie es tun, ich würde die Zwei-Controller-Methode vorschlagen, vielleicht mit einer Wrapping-Klasse, die beide enthält und jede Interaktion zwischen ihnen steuert. Das scheint mir am besten mit dem MVC-Paradigma zu passen.

    
Kevin 20.10.2011 14:43
quelle