2010-08-16 179 views
0

我有parentViewController關閉模式視圖,因爲我想它重新加載parentViewController上的UIPicker。該代碼是很簡單的:委託方法

-(void)didDismissFormsView { 

NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults]; 

NSArray *array = [[NSArray alloc]initWithObjects:[profiles stringForKey:@"name1"],[profiles stringForKey:@"name2"],[profiles stringForKey:@"name3"],nil]; 

self.profileData = array; 
[array release]; 

[self dismissModalViewControllerAnimated:YES]; 

}

..和我知道的方法正在從模式的看法正確地說是因爲我註釋掉最後一行(dismissModal ....)和它不會讓我忽視這個觀點。

但是,UIPicker沒有更新!如果我重新加載應用程序,則更新UIPicker,因爲我在viewDidLoad方法中使用了相同的代碼。爲什麼當這個委託方法被調用時不會重新加載完全相同的代碼?

回答

0

我想通了,我上面的代碼重新加載到數組中的數據,但沒有顯示它。只要我加入[picker reloadAllComponents],它就可以正常工作。選取器只需要重新加載。

0

因爲viewDidLoad在一般情況下不會被調用多次。把你的更新代碼放在viewWillAppear:animated:override中。

+0

但我想通過調用viewDidLoad來觸發的代碼就在我上面粘貼的那個方法中。我只是試圖更新它應該做的選擇器。我簡直就是從viewDidLoad部分複製並粘貼了該代碼。 – startuprob 2010-08-16 17:41:51