Konzept - Core Data und Collection Views

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Konzept - Core Data und Collection Views

    Hallo Entwickler,

    Ich habe eine Frage zum Aufbau einer App auf Core Data und die Anzeige der Daten in UICollectionViews.
    Ich möchte, dass wenn die Daten verändert werden, dass die Collection Views ihre Daten neu laden. Normalerweise würde ich in jeden UICollectionViewController [self.collectionView reloadData] in viewWillAppear: aufrufen, dass sieht aber sehr blöd aus, da es immer einen Blink-Effekt gibt, auch wenn man die Wischgeste versucht and dann loslässt. Zur Struktur: in meiner App habe ich eine mehrstufige View Hierarchie und alle Collection Views und Table Views zeigen die gleichen Daten an, aber jeweils einen anderes Aspekt, ähnlich dem Mac Finder.
    Wie kann ich bewirken, dass die UICollectionViewController ihre Daten nur dann neu laden, wenn die sich die Daten verändern? Ich habe schon daran gedacht jedes mal eine Notification mit dem NSNotificationCenter zu schicken, wenn ich save: von managedObjectContent aufrufe, dass kann aber auch nicht die Lösung sein, oder?
  • Du hast recht, NSManagedObjectContextDidSaveNotification ist die, die ich brauche.
    Trotzdem ist meine Frage noch nicht ganz beantwortet. Sollte ich jedem View Controller, der als presentingViewController agiert oder unter dem jetzigen View Controller auf dem Navigation Stack liegt die Änderungen mitteilen, damit der seine Daten neu laden kann? Ich arbeite gerade an einer Notiz App und man kann Ordner erstellen, um die Notizen zu sortieren. Wenn man eine Notiz verändert müssen natürlich alle View Controller vorher informiert werden und sich die neuen Daten holen, dass kann ich ganz einfach in viewWillAppear: machen. Das problem kommt ins Spiel,wenn man z.B. eine Notiz verschiebt. Dann müssen die UICollectionViewController ihr View neu laden.
    Ich glaube ich werde in so einem Fall eine "ViewShouldChange" Notification schicken und ihnen somit mitteilen ihr View zu aktualisieren.