【发布时间】:2014-03-04 00:27:55
【问题描述】:
我之前已经问过这个问题,但一直没有得到好的答案,所以我再次问了一遍,重新措辞,希望问题变得更清楚:
我有一个标签栏控制器 A,嵌入在导航控制器中。 第一个选项卡包含一个表格视图控制器 B,第二个选项卡包含一个带有核心图的视图控制器 C。 导航栏有一个 + 栏按钮,它以模态方式分隔视图控制器 D,用户在其中向核心数据添加新对象/记录。
table view controller D使用一个NSFetchedResultsController作为它的数据源,所以当用户从controller D返回时,新创建的对象会显示在table view中。
但是,如果用户点击第二个选项卡上的 + 栏按钮,并在模态分离视图控制器 D 中创建一个新对象/记录,然后返回到第二个选项卡,则不会更新核心绘图图。我进行了调查,发现为核心图提供数据的获取请求没有再次更新/执行。
那么,如何强制再次执行 fetch 请求?
视图控制器 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。
【问题讨论】:
标签: ios core-data uiviewcontroller core-plot