2010-08-16 6 views
0

Je demande à parentViewController de fermer la vue modale car je veux qu'elle recharge le UIPicker sur le parentViewController. Le code est vraiment très simple:Méthodes Delegate

-(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]; 

}

..et Je sais que la méthode est appelée correctement du point de vue modal parce que je commentais la dernière ligne (dismissModal ....) et ça ne me laisserait pas ignorer la vue.

Cependant, l'UIPicker ne se met pas à jour !!! Si je recharge l'application, l'UIPicker est mis à jour parce que j'utilise le même code dans la méthode viewDidLoad. Pourquoi le même code ne le rechargerait-il pas lorsque cette méthode de délégué est appelée?

Répondre

0

Je l'ai compris, mon code ci-dessus rechargeait les données dans le tableau mais ne l'affichait pas. Dès que j'ai ajouté [picker reloadAllComponents], ça a bien fonctionné. Le sélecteur avait juste besoin d'être rechargé.

0

Parce que viewDidLoad n'est pas appelé plus d'une fois dans le cas général. Mettez votre code de mise à jour dans une vueWillAppear: animated: override.

+0

Mais le code que je voudrais déclencher en appelant viewDidLoad est juste là dans la méthode que j'ai collé ci-dessus. J'essaye juste de mettre à jour le sélecteur qu'il devrait faire. J'ai littéralement copié et collé ce code dans la section viewDidLoad. – startuprob

Questions connexes