2010-11-10 7 views
0

J'ai un UIPickerView qui est rempli par un NSMutableArray appelé sectionNamesArray. Lorsqu'un élément est ajouté à sectionNamesArray, comment puis-je manuellement appeler ce délégué?Mise à jour du nombre de lignes UIPickerView

-- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 

{ 

return ([sectionNamesArray count] + 1); 

} 

Le problème est que j'ajoute ce sélecteurView au centre d'un navBar dans titleView. Si j'essaie d'annuler le UIPickerView et de le réaffecter pour que le délégué soit de nouveau appelé, le PickerView apparaît sur le côté gauche de la barre de navigation, au lieu du centre. Je devine peut-être que les paramètres du constructeur d'interface l'ont obtenu au centre ...?

Voici le code pour que:

-(void) setupPickerView{ 
myPickerView = nil; 
myPickerView = [[UIPickerView alloc] init]; 
myPickerView.backgroundColor = [UIColor clearColor]; 
myPickerView.delegate = self; 
myPickerView.dataSource = self; 
myPickerView.showsSelectionIndicator = YES; 
[self.navigationController.navigationBar setBackgroundView:myPickerView]; 

CGSize pickerSize = [myPickerView sizeThatFits:CGSizeZero]; 
UIView *pickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(-40.0, -43.0, pickerSize.width, pickerSize.height)]; 
pickerTransformView.transform = CGAffineTransformMakeScale(.55f, .55f); 

[pickerTransformView addSubview:myPickerView]; 
[self.navigationController.navigationBar setBackgroundView:pickerTransformView]; 

} 

Répondre

4

Lorsque vous ajoutez quelque chose à votre tableau ne peut pas vous utiliser [UIPickerView reloadAllComponents] ou - (void)reloadComponent:(NSInteger)component?

Cela va très probablement interroger votre délégué et appeler tout le nécessaire pour vérifier votre tableau et recharger la vue.

+0

Super idée. Je ne savais pas que ça existait. Je vais l'essayer maintenant. La plupart des objets ont-ils une méthode pour tout recharger? Je sais que tableview fait. – Bryan

+0

Cela a fonctionné parfaitement. Si je pousse un contrôleur de vue modale, comment puis-je appeler cette fonction de mon autre viewController lorsqu'il se ferme? Merci beaucoup! – Bryan

Questions connexes