Вы говорите,
if (button1.enabled = NO) {
, когда вы, вероятно, означает
if (button1.enabled == NO) {
=
- оператор присваивания, а ==
- оператор булевого равенства. То, что вы делаете в данный момент, назначает YES кнопке button.nable, что, очевидно, позволяет button1. Затем, поскольку button.enable истинно, управление вводит условие if и включает кнопку button2.
EDIT: Чтобы ответить на ваш новый вопрос («Когда я нажимаю кнопку« + », я хочу включить первую кнопку, а когда я нажму снова, чтобы включить второй ...»), предположим, что вы инициализируете кнопку где-то. В вашем @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 Внутри обработчика событий до plusPressed:
. Тогда вы бы
-(IBAction)plusPressed: (id) button {
for (UIButton *each in buttons) {
if (!each.enabled) {
each.enabled = YES;
break;
}
}
}
Каждый раз, когда plusPressed:
называется, следующая кнопка в массиве будет включен. (Я пишу выше от компилятора, могут быть синтаксические ошибки.)
Вы также можете сделать buttons
недвижимость. Я не сделал этого, потому что другие классы не имеют доступа к buttons
.
Как этот код отключает любые кнопки? – 2010-08-15 20:16:03
Можете ли вы предоставить дополнительную информацию? Трудно понять, что вы пытаетесь задать здесь ... – Jasarien