這是帶NSFetchedResults控制器或不帶NSFetchedResults控制器的好問題 - 您有一個觀察模型的表vc,並且您希望用戶在彈出或從其他視圖控制器關閉後看到動畫更改。
可能有更好的辦法,但最近我在類似的情況下做的事情是讓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
}
在我案例中,我使用了一個更傳統的委託協議,傳遞添加VC作爲第一個參數,但這樣做延遲需要一個詳細的NSInvocation,所以我在這裏跳過它。對於那個讓我困擾的問題+1。我很好奇別人的解決方案。