Hai provato a mettere quel codice nel metodo -(void)viewWillAppearBOOL)animated del viewController?
Questo metodo viene eseguito tutte le volte che un viewController appare a schermo, mentre per farti un esempio viewDidLoad viene eseguito una volta sola al primo caricamento del viewController.
Quello che voglio dirti è che se il codice di caricamento dei dati stava in viewDidLoad allora i dati venivano caricati una sola volta dopodichè anche se tu aggiornavi il database con dati nuovi e poi tornavi al viewController di visualizzazione no te li faceva vedere, (i dati nuovi intendo).
Anche io ho avuto bisogno in un'applicazione, che fa un'uso abbastanza spinto di core data, di implementare un viewController di inserimento dati ed uno di visualizzazione e funziona perfettamente.