Des UIPickerView avec différentes valeurs
Bonjour,
J'ai 5 tableaux, et pour chacun d'eux je doit faire un PickerView contenant les infos du tableau
J'en ai créer un comme ci dessous
Comment créer les 4 autres? Je doit copier ce code 4 fois ?
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return listeSuiviDossier.count;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSString *titrePickerview = listeSuiviDossier[row];
return titrePickerview;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSString *titrePickerview = listeSuiviDossier[row];
[suiviDossierBouton setTitle:titrePickerview forState:UIControlStateNormal];
}
- (IBAction)suiviDossierAction:(id)sender {
[self.pickerViewTextField becomeFirstResponder];
}
- (void)cancelTouched:(UIBarButtonItem *)sender
{
[self.pickerViewTextField resignFirstResponder];
[suiviDossierBouton setTitle:@Sélectionnez forState:UIControlStateNormal];
}
- (void)doneTouched:(UIBarButtonItem *)sender
{
[self.pickerViewTextField resignFirstResponder];
}
Merci d'avance à ceux qui m'aideront
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Dupliquer le code que tu as écris ici dans une même classe ne marche pas.
Ce que tu as besoin de faire c'est afficher les bonnes données au bon moment. Dans ton cas par exemple, si tu disposes de 5 tableaux, effectuer des condition serait la méthode la plus simple à imaginer. Toutefois je partirais d'un dictionnaire qui engloberait tes tableaux ou d'un tableau unique qui contiendrait tes 5 tableaux.
Ce serait préférable quand même de penser à un autre modèle que celui-là pour facilité la maintenance. Qu'est ce qui arriverait si tu souhaites ajouter 2 autres tableaux ? Jouer sur les conditions aussi c'est fastidieux.
Et ça se présenterait comment au niveau du code ça s'i te plait ?
Un exemple possible :
C'est juste une manière de faire :
Regarder de quel UIPickerView il s'agit si tu en as mis plusieurs.
Si tu en as qu'un à chaque fois de visible, tu peux mettre un if qui agira en fonction. En ayant le même NSArray, mais en changeant son contenu.
Hello Larme,
Je ne sais pas si je fais de la bonne manière pour créer mon pickerView, j'aimerais avoir confirmation (ou non).
Voila ce que j'ai fait (j'ai repris le code de mon collègue, qui est débutant aussi)
C'est la bonne manière de faire ?
Comment adapter cela si j'ai 5 UIPickerViews ?
Est-ce que tu veux vraiment afficher 5 PickerViewou bien afficher différentes données dans un seul et unique PickerView ?
D'ailleurs, que contiennent tes tableaux ? Des Chaines de caractères ?
A vrai dire je veut faire au plus simple, donc si c'est plus simple un seul je suis preneur
Les tableaux ne contiennent que du texte (à l'exception d'un).
D'ailleurs une question me viens est-il possible de faire un tableau qui contient un NSString 6 int ?
Il contient quoi le dernier tableau ?
Tu peux pour aller vite créer des méthodes qui te retournent chacune un tableau ( donc ici des chaines de caractères).
Lorsque tu déclenche un évènement pour récupérer des données précises tu appelles la bonne méthode.
Ainsi pas besoin de faire de conditions dans tes méthodes du protocol PickerView et tu gardes toujours ta property listeSuiviDossier comme tableau de référence.
Le dernier tableau est le suivant:
Si je pouvais mettre les chiffres en int au lieu d'en string ça serait cool, ça m'éviterait de faire un intValue ^^
Tu pourrais me donner un exemple simple de la méthode dont tu parles, car la je ne vois pas trop de quoi tu parles. Merci d'avance
Ton tableau d'entier tu vas de toute les façons afficher en String sur ton Pickerview.
Pour ce qui est de la méthode, voici un exemple rapide de ce que tu peux faire. À toi de l'adapter.
Ok merci, je vais essayer de le réadapter et si j'ai des soucis, je reviens vers vous
Re,
Bon je comprends pas trop ton IBAction et le concept de segment. Pourrais tu m'expliquer s'il te plait ? De mon côté j'ai autant de bouton que d'éléments de tableaux (donc 5).
D'autre part, que deviennent ces lignes la s'il te plait ?
Le Segment Control est un objet UI. C'est un composant qui dispose de plusieurs boutons. Je l'ai utilisé ici parce qu'il me simplifiait le travail mais bien sur tu dois adapter selon tes besoins. Selon le bouton sur lequel j'appuie, je déclenche un évènement (ici IBAction dont tu parles) et j'appelle une méthode précise.
Enfin, pour ce qui est des lignes ci-dessus, c'est à toi de me le dire ! Je t'ai juste montré une solution possible afin d'afficher différentes données au sein d'un seul et même PickerView.
Car ce que tu demandes ici fait partie des bases que tu apprends avec ce genre de bouquin ou tuto, et sans cela tu vas avoir du mal à comprendre beaucoup de choses ou de réponses des forums.
C'est un peu long et pas forcement motivant c'est sûr mais une fois que tu seras passé par cette étape crois moi beaucoup de choses deviendront plus claires y compris nos réponses et tu progresseras beaucoup plus vite !
Bien sûr on sera toujours là s'il y a un point du bouquin qui te bloque par exemple mais au moins une fois que tu auras les bases tu te poseras beaucoup moins de questions standard comme "C'est quoi cette IBAction" ou "comment ça marcher un delegate" et ça va bien t'éclaircir
J'ai pourtant bien compris ce qu'est un IBAction, j'ai juste pas compris ce que faisait l'action du bouton