Je souhaite effectuer une action lorsque UISwitch change d’état et est donc activé ou désactivé. Comment puis-je faire cela? Je dois passer deux objets en tant que paramètres.
Il est créé dans le code, n'utilisant donc pas xib.
[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged];
Ceci appellera la méthode ci-dessous lorsque l'état de votre commutateur changera
- (void)setState:(id)sender
{
BOOL state = [sender isOn];
NSString *rez = state == YES ? @"YES" : @"NO";
NSLog(rez);
}
Evidemment on peut faire la même chose avec Swift, voici le code (compilé et travaillé avec la dernière version du Swift 3.1 )
Ajouter une action à votre bouton de commutation:
mySwitch.addTarget(self, action: #selector(self.switchValueDidChange), for: .valueChanged)
Et implémentez cette méthode:
func switchValueDidChange(sender:UISwitch!) {
print(sender.isOn)
}
Ou même si vous n'utilisez pas l'expéditeur, vous pouvez supprimer:
func switchValueDidChange() {
// do your stuff
}
Solution facile pour moi (travaillé avec Swift 4):
@IBAction func toggleSwitch(_ sender: UISwitch) {
if(mySwitch.isOn) {
//Do something
} else {
//Do something
}
}
Liez la fonction ci-dessus à la valeur modifiée dans les événements envoyés sous l'onglet de connexion