Ich habe eine UITabbar
mit mehreren Controllern drin. Einer der Controller wird zum Hinzufügen von Ereignissen zu Core Data verwendet, während ein anderer Controller zum Anzeigen von Ereignissen wie in einer UITableView mit NSFetchedResultsController
verwendet wird.Wie verhindert man, dass NSFetchedResultsController die Tabellenansicht aktualisiert, wenn der Controller verschwindet?
Hier ist das Verhalten, das ich erreichen möchte: Nach dem Verschwinden, die UITableView stoppt die Aktualisierung, und wenn der Benutzer zurückkommt, wird die gesamte Tabellenansicht neu geladen. Andernfalls dauert das Einfügen von Ereignissen vom anderen Controller länger, da neue Zeilen in UITableView
erstellt werden, auch wenn sie nicht sichtbar sind.
Ich frage mich, wie ich dieses Verhalten erreicht werden kann, da es nicht, wie ich es sein würde erwarten, scheint zu funktionieren:
ich in viewWillDisappear
den Delegierten des NSFetchedResultsController auf Null gesetzt haben, und es wiederherstellen in viewWillAppear
, zusammen mit einem Anruf zu [UITableView reloadData]
;
Irgendwie kann ich die neuen Daten nicht sehen und vermute, dass dies auf die Art und Weise zurückzuführen ist, wie NSFetchedResultsController aufhört, abzurufen, wenn es keinen Delegaten hat.
Wie kann ich Updates zu UITableView
ordnungsgemäß "suspendieren", wenn es verschwindet, aber immer noch in der Lage, den gesamten Datensatz zu sehen, wenn der Controller wieder erscheint?
Es wäre gut zu wissen, warum downvote? – user427969