如何更新不同ViewController中的数据并在父级中显示?

时间:2010-02-17 14:25:25

标签: iphone core-data uitableview

我前一段时间问了一个类似的问题,但我显然遗漏了一些东西。

我有2个视图控制器 - 一个显示数据,另一个显示数据。在我的第一个控制器中,我创建了我的对象:

thing = [NSEntityDescription insertNewObjectForEntityForName:@"Thing" inManagedObjectContext:managedObjectContext];

thing.DateTime = [NSDate date];
thing.aNumber = [NSNumber numberWithInt:12000];

在didSelectRowAtIndexPath方法中,我创建了一个新控制器并添加了一些这样的数据:

ThingDetailController *thingDetailController = [[ThingDetailController alloc] initwithDateTime:thing.DateTime];

thingDetailController.managedObjectContext = self.managedObjectContext;

[[self navigationController] pushViewController:thingDetailController animated:YES];
[thingDetailController release];

在我的initWithDateTime初始化程序中,我将传递给我的ThingDetailController.dateTime对象的DateTime:

- (id)initWithDateTime:(NSDate *)dateStamp {

    dateTime = dateStamp;
    return self;
}

当我的新控制器出现在屏幕上时,该数据存在且可用,但当我点击详细编辑器控制器中的后退按钮时,我在那里所做的任何更改都不会发送回父控制器。

我需要做些什么才能在该区域更改此​​值?

提前致谢,

1 个答案:

答案 0 :(得分:1)

数据已更新,但视图不会自动从该数据刷新。如果您的第一个视图控制器是UITableViewController,那么您应该使用NSFetchedResultsController并使用其委托方法来检测数据更改。否则,除非您说明,否则您的视图不知道数据已更改。