Rien ne se passe au clic sur mon bouton
Bonjour,
J'ai l'impression que rien ne se passe au clic sur mon bouton, que ça soit "Annuler" ou "Valider", alors qu'il y a pourtant bien des actions dans ces boutons.
J'ai beau eu chercher toute la matinée j'ai toujours pas trouvé d'ou venait le souci. Une ame charitable pourrait elle m'indiquer la voie s'il vous plait ?
self.myPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 300, 0, 0)];
self.myPickerView.backgroundColor=[UIColor whiteColor];
myPickerView.showsSelectionIndicator = YES;
myPickerView.dataSource = self;
myPickerView.delegate = self;
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
toolBar.barStyle = UIBarStyleDefault;
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@Valider style:UIBarButtonItemStyleDone target:self action:@selector(doneTouched];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@Annuler style:UIBarButtonItemStyleDone target:self action:@selector(cancelTouched];
[toolBar setItems:[NSArray arrayWithObjects:cancelButton, [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]];
self.itemsPickerView = [self listeSuivi];
[myPickerView addSubview:toolBar];
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Alors déjà quand je vois des Magic Numbers partout, ça me fait mal aux yeux et j'ai failli arrêter de lire...
Ensuite, ajouter une toolBar en subview à un UIPickerView : très mauvaise idée. un UIPickerView n'est pas un composant qui a été pensé pour qu'on y ajoute des subviews, d'autant qu'il gère lui-même ses interactions (swipe sur les molettes pour les faire tourner, etc) et doit certainement donc intercepter tous les taps sans les passer à ses subviews, d'où le comportement que tu observes.
Mets ta toolBar à l'extérieur de ton picker, en subview de ta vue principale de ton ViewController par exemple, mais certainement pas en subview de ta toolbar !!
Ok merci
Ali, pourrais-tu expliquer ce que tu entends par Magic Numbers et pourquoi tu n'aimes pas ça ?
Merci.
Exemple:
Le premier problème est celui de la signification: d'où sortent ces fichus nombres ?
Une première version corrigée:
On remarquera que définir des constantes permet par ailleurs de les réutiliser...
Le deuxième problème est que la taille de l'écran d'iPhone n'est pas connue lors du codage, puisque les iPhone 4, 5, 6 et 6+ disposent d'écrans de tailles différentes. Il faut donc plutôt déterminer quelle est la taille de la vue parente, ou beaucoup mieux, utiliser l'autoresizing ou l'autolayout pour adapter la frame de la vue en fonction de sa disposition dans la vue parente.
Merci pour ces explications Céroce. On les voit beaucoup sur internet dans des exemples de code, ces magic numbers, et du coup ça ne m'avait pas frappé que ça manquait de bon sens.