Je veux exécuter une action lorsque l'UISwitch change d'état, c'est-à-dire qu'il est activé ou désactivé. Comment dois-je m'y prendre ? Je dois passer deux objets comme paramètres.
Il est créé en code, et n'utilise donc pas de xib.
Je veux exécuter une action lorsque l'UISwitch change d'état, c'est-à-dire qu'il est activé ou désactivé. Comment dois-je m'y prendre ? Je dois passer deux objets comme paramètres.
Il est créé en code, et n'utilise donc pas de xib.
[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged];
Cela appellera la méthode ci-dessous lorsque l'état de votre interrupteur changera.
- (void)setState:(id)sender
{
BOOL state = [sender isOn];
NSString *rez = state == YES ? @"YES" : @"NO";
NSLog(rez);
}
Il est évident que nous pouvons faire la même chose avec Swift, voici le code (compilé et travaillé avec la dernière version du Swift 3.1 )
Ajoutez de l'action à votre bouton de commutation :
mySwitch.addTarget(self, action: #selector(self.switchValueDidChange), for: .valueChanged)
Et mettez en œuvre cette méthode :
@objc func switchValueDidChange(sender:UISwitch!) {
print(sender.isOn)
}
Ou même si vous n'utilisez pas l'expéditeur, vous pouvez le supprimer :
func switchValueDidChange() {
// do your stuff
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.