vous dites
if (button1.enabled = NO) {
quand vous voulez dire probablement
if (button1.enabled == NO) {
=
est l'opérateur d'affectation et ==
est l'opérateur d'égalité booléenne. Ce que vous faites en ce moment, c'est d'affecter YES à button1.enable, ce qui active évidemment button1. Puis, parce que button.enable est vrai, le contrôle entre la clause if et active le bouton2.
EDIT: Pour répondre à votre nouvelle question ("Quand j'appuie sur le bouton" + "je veux activer le premier bouton et quand je repasse à nouveau pour activer le second ..."), disons que vous initialisez le bouton États quelque part. Dans votre @interface ajouter une variable d'instance
NSArray *buttons;
de sorte que votre déclaration d'interface ressemble à quelque chose comme
@interface YourViewController: UIViewController {
IBOutlet UIButton *button1;
IBOutlet UIButton *button2;
IBOutlet UIButton *button3;
IBOutlet UIButton *button4;
IBOutlet UIButton *button5;
NSArray *buttons;
}
puis initialisez buttons
comme ceci:
-(void)viewDidLoad {
[super viewDidLoad];
buttons = [NSArray arrayWithObjects: button1, button2, button3, button4, button5, nil];
[buttons retain];
for (UIButton *each in buttons) {
each.enabled = NO;
}
-(void)viewDidUnload {
[buttons release];
[super viewDidUnload];
}
Supposons que vous accrochez le + Touchez le gestionnaire d'événement Touch Up Inside à plusPressed:
. Ensuite, vous auriez
-(IBAction)plusPressed: (id) button {
for (UIButton *each in buttons) {
if (!each.enabled) {
each.enabled = YES;
break;
}
}
}
Chaque fois plusPressed:
est appelé, le bouton suivant du tableau sera activé. (J'écris ci-dessus loin d'un compilateur, il peut y avoir des erreurs de syntaxe.)
Vous pouvez également faire une propriété buttons
. Je n'ai pas, parce que les autres classes n'ont pas d'accès à l'buttons
.
Comment ce code désactive-t-il les boutons? –
Pouvez-vous fournir plus d'informations? Il est difficile de comprendre ce que vous essayez de demander ici ... – Jasarien