2009-06-24 6 views

Répondre

12

Assurez-vous que votre contrôleur (ou tout ce qui contrôle le comportement de PickerView) supporte le protocole UIPickerViewDelegate. Ensuite, mettre en œuvre:

- (int) numberOfColumnsInPickerView:(UIPickerView*)picker 

pour retourner le nombre de colonnes que vous voulez, et de revenir le nombre de lignes pour chaque colonne, et enfin

- (int) pickerView:(UIPickerView*)picker numberOfRowsInColumn:(int)col 

:

- (UIPickerTableCell*) pickerView:(UIPickerView*)picker tableCellForRow:(int)row inColumn:(int)col 

à installer chaque cellule.

Voir les références pour UIPickerView et UIPickerViewDelegate.

+0

Le lien pour le code décent est un exemple non disponible. Je l'ai supprimé de votre réponse – Dejell

2

Il existe un excellent tutoriel sur ce sujet here.

0

En supposant que vous ayez un dictionnaire ou deux matrices contenant vos données statiques. Pour la simplicité je vais aller avec un tableau très simple.

Vous devez modifier la définition de votre interface de contrôleurs de vue pour indiquer au programme que votre contrôleur de vue peut fournir des données et déléguer à une vue sélecteur.

@interface NVHomeViewController : UIViewController <UIPickerViewDelegate,UIPickerViewDataSource> 

que juste mettre en œuvre deux méthodes vont faire fonctionner la documentation devrait toutefois être vérifiée pour d'autres méthodes qui sont facultatives, mais offre une plus grande personnalisation et de contrôle.

@interface NVHomeViewController : UIViewController <UIPickerViewDelegate,UIPickerViewDataSource> 

NSArray *options; 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    options = @[@"a",@"b",@"c",@"d"]; 
} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ 
    return 1; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 
    return [options count]; 
} 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 
    return [options objectAtIndex:row]; 
} 

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ 
    NSLog(@"%@ selected.",[options objectAtIndex:row]); 
}