2010-08-16 127 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