我之前已經問過這個問題,但從來沒有得到一個很好的答案,所以我再問一遍,重新措辭,並希望問題變得更加清晰:CoreData:獲取請求不會獲取上次插入的記錄?或者如何強制刷新取回請求
我有一個選項卡條形碼控制器A,嵌入在導航控制器中。 第一個選項卡包含表格視圖控制器B,第二個選項卡包含具有核心圖的視圖控制器C. 導航欄有一個+ bar按鈕,它用於模式地縮放視圖控制器D,用戶在其中添加一個新的對象/記錄到核心數據。
表視圖控制器D使用NSFetchedResultsController作爲其數據源,因此當用戶從控制器D返回時,新創建的對象將顯示在表視圖中。
但是,如果用戶點擊第二個選項卡上的+ bar按鈕,並在模態相關的視圖控制器D中創建新的對象/記錄,然後返回到第二個選項卡,則不更新核心繪圖圖形。我調查了一下,發現爲核心繪圖提供數據的提取請求不會再次更新/執行。
那麼,我該如何強制執行取回請求呢?
我「做」方法的視圖控制器d年底代碼:
MRBMITabBarController *tabController = (MRBMITabBarController *) self.delegate;
NSArray *controllers = tabController.viewControllers;
MRBMIKurveViewController *kurveController = (MRBMIKurveViewController *) [controllers objectAtIndex:1];
kurveController.bmisForPlot = nil;
kurveController.bmisForPlot = [[kurveController fetchBmisForPlot] copy];
[kurveController.graph reloadData];
[kurveController.boundLinePlot reloadData];
[self.delegate dismissViewControllerAnimated:YES completion:nil];
但這並不刷新視圖控制器C的情節,但在表視圖控制器d表視圖刷新。
注:MRBMIKurveViewController是視圖控制器C.