Вы говорите
if (button1.enabled = NO) {
, когда вы, вероятно, имеете в виду
if (button1.enabled == NO) {
=
- оператор присваивания, а ==
- оператор логического равенства.В данный момент вы назначаете YES для button1.enable, что, очевидно, включает button1.Затем, поскольку button.enable имеет значение true, элемент управления вводит условие if и включает button2.
РЕДАКТИРОВАТЬ: ответить на ваш новый вопрос («Когда я нажимаю кнопку« + », я хочу, чтобы первая кнопка и когдаЯ нажимаю еще раз, чтобы включить второе ... "), допустим, что вы где-то инициализируете состояния кнопок.В свой @interface добавьте переменную экземпляра
NSArray *buttons;
, чтобы объявление вашего интерфейса выглядело как
@interface YourViewController: UIViewController {
IBOutlet UIButton *button1;
IBOutlet UIButton *button2;
IBOutlet UIButton *button3;
IBOutlet UIButton *button4;
IBOutlet UIButton *button5;
NSArray *buttons;
}
, а затем инициализировало buttons
примерно так:
-(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];
}
Допустим, вы подключили обработчик события Touch Up Inside к кнопке + к plusPressed:
.Тогда у вас будет
-(IBAction)plusPressed: (id) button {
for (UIButton *each in buttons) {
if (!each.enabled) {
each.enabled = YES;
break;
}
}
}
Каждый раз, когда вызывается plusPressed:
, будет включена следующая кнопка в массиве.(Я пишу выше, от компилятора; могут быть синтаксические ошибки.)
Вы также можете сделать buttons
свойством.Я не сделал, потому что другие классы не имеют доступа к бизнесу buttons
.