Existe-t-il un moyen de modifier par programme l'IBAction d'un UIButton?iPhone SDK: modifier par programme IBAction
Je sais que je peux simplement créer deux boutons et utiliser button.hidden = BOOL, mais je préfère changer l'IBAction elle-même.
Existe-t-il un moyen de modifier par programme l'IBAction d'un UIButton?iPhone SDK: modifier par programme IBAction
Je sais que je peux simplement créer deux boutons et utiliser button.hidden = BOOL, mais je préfère changer l'IBAction elle-même.
Bien sûr. Vous pouvez utiliser addTarget:forControlEvents:
et removeTarget:action:forControlEvents:
pour gérer manuellement les connexions entre les méthodes d'action et les contrôles. Les deux méthodes sont dans UIControl
.
Je ne suis pas sûr de comprendre la question? Pourquoi ne pas avoir IBAction appeler une méthode personnalisée et mettre une certaine logique sur quelle action à prendre dans cette méthode?
parce pourquoi avec votre propre logique quand Apple fournit la logique pour vous :) –
Je ne Je pense que je considérerais le branchement et la suppression de IBActions comme une «logique». Et si vous envisagez le modèle MVC, je pense que ce serait une meilleure solution à votre problème. – ACBurk
Bien sûr:
-removeTarget:action:forControlEvents: pour enlever l'ancienne mesure
-addTarget:action:forControlEvents: ajouter la nouvelle action
ok, donc j'appellerais [self addTarget: action sur le bouton: theIBAction forControlEvents: UIControlEventTouchDown]; –
[button addTarget: action de soi: theIBAction forControlerEvents: UIControlEventTouchDown], en supposant que self répond à l'IBAction –
Je reçois une erreur lorsque je mets l'IBAction, dit qu'il n'est pas déclaré ... –