2008-11-11 32 views
2

我有一個UIViewController管理一些數據的顯示。當用戶想要編輯這些數據時,我將編輯UIViewController推入堆棧。當用戶完成編輯時,頂視圖控制器從堆棧彈出。彈出編輯視圖後,我需要更新顯示的最優雅方式是什麼?什麼是最好的方式知道什麼時候在堆棧上方的UIViewController被彈出?

我認爲我可以將內容更新代碼放入我的數據視圖的viewDidLoad方法中,但是當我顯示視圖時並不總是調用此方法,尤其是當我向下瀏覽視圖堆棧時。

我也考慮設立我的數據視圖控制器作爲UINavigationController的委託,並等待– navigationController:didShowViewController:animated:被調用,我擔心的是,可能有需要時,他們顯示通知其他視圖控制器,它會變成輕微頭痛管理哪個控制器應該收到didShowViewController消息。

回答

5

我認爲viewWillAppear會做的伎倆。

否則,您的編輯視圖控制器可能會調用委託指向您的父控制器的新方法。在那裏,您可以更新數據模型並顯示。例如:

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if ([delegate respondsToSelector:@selector(editEntryByTitle:)]) 
     [delegate performSelector:@selector(editEntryByTitle:) withObject: textField.text]; 
    [textField resignFirstResponder]; 
    [self dismissModalViewControllerAnimated:YES]; 
    return YES; 
} 
+0

viewWillAppear像一個魅力工作,謝謝! – kubi 2008-11-11 18:49:20

相關問題