Si tu tapes UISwitch dans la doc apple dans xcode tu as tout ce qu'il te faut. En particulier ça :
- (void)setOn:(BOOL)on animated:(BOOL)animated
Je ne parle pas de la méthode qui modifie le status du UISwith. Je parle de l'évenement qui se declenche aprés la modifcation du status (mettre le reste des swith à false comme radio boutton).
Eh bien c'est ce que je te dis ... Des que tu entres dans ton action d'un switch c'est a dire que tu executes le ON ou OFF. donc selon ton etat tu changes ceux des autres en faisant :
[unAutreSwitch setOn:YES animated:YES] le premier YES met ton autre switch à ON et animated c'est juste visuel, pour un effet de translation ou pas.
Eh bien c'est ce que je te dis ... Des que tu entres dans ton action d'un switch c'est a dire que tu executes le ON ou OFF. donc selon ton etat tu changes ceux des autres en faisant :
[unAutreSwitch setOn:YES animated:YES] le premier YES met ton autre switch à ON et animated c'est juste visuel, pour un effet de translation ou pas.
Mon Switch n'est relié à aucune action. Lorsque je clique sur ce swith, je doit capter cet évenement et puis mettre les autre à off avec la fonction que tu as cité ...!!!
Bah moi j'aurai mis une action mon chaque switch et cette action est juste faite pour le changement d'état justement... Enfin peut-etre que les autres pourront te donner la solution que tu désires.
Bah moi j'aurai mis une action mon chaque switch et cette action est juste faite pour le changement d'état justement... Enfin peut-etre que les autres pourront te donner la solution que tu désires.
Tu peux même relier tous tes UISwitch à une seule et même action, et comme tu récupères le "sender" en paramètre de cette IBAction, donc le UISwitch qui aura déclenché l'action en conséquence tu pourras agir selon tout ça. Par exemple si sender.value est à "ON", alors il suffit de boucler sur tous tes UISwitch pour les passer à OFF, sauf si l'UISwich de ta boucle est ==sender. S'il était à ON et qu'on essaye de le passer à OFF, tu te contentes de le remettre à ON...
Ou même mieux, tu gardes une variable d'instance lastSelectedSwitch qui pointe sur le seul et unique switch actuellement à ON, et dans ton IBAction tu mets lastSelectedSwitch.value à OFF et sender.value à ON. Ca marchera pour les 2 cas comme ça... et ne te nécessitera que 3 lignes de code.
Réponses
En particulier ça :
- (void)setOn:(BOOL)on animated:(BOOL)animated
Je ne parle pas de la méthode qui modifie le status du UISwith.
Je parle de l'évenement qui se declenche aprés la modifcation du status (mettre le reste des swith à false comme radio boutton).
plusieurs UISwitch sur ta UIView.
Dès que tu changes l'état de l'un tu désires mettre les autres à l'état contraire?
Exacte
Des que tu entres dans ton action d'un switch c'est a dire que tu executes le ON ou OFF.
donc selon ton etat tu changes ceux des autres en faisant :
[unAutreSwitch setOn:YES animated:YES]
le premier YES met ton autre switch à ON et animated c'est juste visuel, pour un effet de translation ou pas.
je n'ai pas d'action !
Mon Switch n'est relié à aucune action.
Lorsque je clique sur ce swith, je doit capter cet évenement et puis mettre les autre à off avec la fonction que tu as cité ...!!!
Enfin peut-etre que les autres pourront te donner la solution que tu désires.
Oui, oui, Action: ValueChanged.
Merci
S'il était à ON et qu'on essaye de le passer à OFF, tu te contentes de le remettre à ON...
Ou même mieux, tu gardes une variable d'instance lastSelectedSwitch qui pointe sur le seul et unique switch actuellement à ON, et dans ton IBAction tu mets lastSelectedSwitch.value à OFF et sender.value à ON. Ca marchera pour les 2 cas comme ça... et ne te nécessitera que 3 lignes de code.