これは、NSFetchedResultsコントローラーがある場合とない場合の良い質問です。モデルを監視しているテーブルvcがあり、別のViewControllerからポップまたは却下した後にアニメーション化された変更をユーザーに表示する必要があります。
おそらくもっと良い方法がありますが、最近同様の状況で私がしたことは、子会社(プッシュまたはモーダルプレゼンテーション)vcからのデリゲートメッセージに基づいて、テーブルvcにモデルの更新自体を実行させることでした。
したがって、テーブルvcでは:
AddingVC *addingVC = [[AddingVC alloc] initWithDelegate:self];
[self presentModalViewController:addingVC animated:YES];
// adding to the model will happen in this vc, based on a delegate message
- (void)addingVcDidCreateAnObjectToAdd:(id)objectToAdd {
// add to your model here
}
追加するvcはこれを行います(そして私はこれを完全に誇りに思っているわけではありませんが、それは機能します)...
- (void)thingIsReadyToAdd {
SEL selector = @selector(addingVcDidCreateAnObjectToAdd:);
[self.delegate performSelector:selector withObject:objectToAdd afterDelay:1.5];
// 1.5 is on the long side, since the vc transition is about 0.5, so 1.0 is okay
}
私の場合、最初のパラメーターとしてaddingVCを渡す、より従来型のデリゲートプロトコルを使用しましたが、遅延を伴う場合は詳細なNSInvocationが必要になるため、ここではスキップしました。私も気になっている質問に対して+1。他の人の解決策に興味があります。