你说的是
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。