2010-05-31 64 views
0

我有一個適用於iPhone 3.1.3的實用程序。我有我的主視圖加載正常。我翻轉到實用程序應用程序的翻轉視圖並更改一些設置。如何在主視圖中調用我目前在viewDidLoad中獲得的代碼來刷新它,因爲設置已更改?當從Utility應用程序的FlipSideView返回時強制重新加載視圖

我是否創建一個公共方法並從flipside視圖的viewDidUnload方法調用它?我是否直接撥打viewDidLoad?什麼是最好的方法來做到這一點?

回答

1

首先,您不應該直接致電viewDidLoad。它可能不會導致任何問題,但最好留下像這樣的方法僅由底層API調用。只是將一些視圖初始化移入一個新方法,如configureViewForSettings或其他方法。

最好的方法是使用委派。當您需要將某種數據或通知發送回「父」視圖時,這是最合適的。用settingsViewChangedSettings:(MySettingsView *)settingsView等方法創建一個新的協議MySettingsViewDelegate。然後在您的設置視圖控制器上添加一個id<MySettingsViewDelegate> delegate屬性。

當設置更改調用委託方法是這樣的:

[self.delegate settingsViewChangedSettings:self]; 

並在您的主視圖控制器,當你創建/顯示設置查看,設置自己爲所述代表

mySettingsView.delegate = self; 
/* Display the settings view */ 

然後在某處:

- (void)settingsViewChangedSettings:(MySettingsView *)settingsView { 
    /* Settings changed, refresh your view */ 
    [self configureViewForSettings]; 
}