Проблема не в NSFetchedResultsControllerDelegate
методах. Эти методы вступают в действие только в том случае, если что-то меняет модель данных, когда таблица видна.
Ваша проблема в том, что вы изменяете данные, когда табличное представление находится за пределами экрана и неактивно. Табличные представления предназначены для автоматического отображения заданной им модели данных. Когда вы возвращаетесь в табличное представление из подробного представления, оно автоматически перезагружает свои данные, которые теперь содержат изменения, сделанные в подробном представлении. Это будет сделано независимо от того, как вы предоставили данные в таблицу.
Единственный способ запретить отображению изменений в таблице до тех пор, пока вы этого не хотите, - не добавлять данные в модель данных до тех пор, пока вы не захотите, чтобы это изменение появилось. Вам нужно будет передать данные из подробного представления обратно в таблицу в неуправляемом объекте и создать управляемый объект в контроллере табличного представления, когда вы захотите, чтобы он появился.
Однако, с точки зрения дизайна пользовательского интерфейса, я предлагаю вам пересмотреть свой дизайн. Если вы не измените таблицу до тех пор, пока она не перезагрузится, как вы будете оповещать пользователей о том, что вы собираетесь внести изменения? Будет ли интерфейс внезапно обновляться без видимой причины? Придется ли пользователю инициировать это? Что если они забудут?
Я думаю, что пользователи будут ожидать, что любые изменения, внесенные в детальном представлении, будут немедленно отражены в табличном представлении, потому что именно так работают практически все пары tableview-detailView. Например, если вы измените имя контакта в контактной информации адресной книги, которое будет отражено сразу после возврата к списку контактов.