2010-02-17 36 views
1

我剛纔問了一個類似的問題,但我明顯錯過了一些東西。如何更新不同ViewController中的數據並將其顯示在父級?

我有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

的數據被更新,但認爲不會自動從該數據刷新。如果您的第一個視圖控制器是UITableViewController,那麼您應該使用NSFetchedResultsController並使用其委託方法來檢測數據更改。否則你的觀點不知道數據已經改變,除非你告訴它。

+0

我很確定我在父視圖中使用NSFetchedResultsController,並且在ParentController中有controllerDidChangeContent委託。我還應該做什麼? – Anonymouslemming 2010-02-17 16:34:13

+1

保存上下文作爲委託不會觸發,直到調用保存。 – 2010-02-17 17:16:49

相關問題