我的视图中有2个按钮,我想在我点击另一个按钮时禁用第一个按钮,当我再次单击按钮时禁用第二个按钮。
我尝试过这段代码
if (button1.enable = NO) {
button2.enable = NO;
}
所以我在NavigationBar中有一个“+”按钮,在我的视图中有5个禁用按钮。
当我按下“+”按钮时,我想启用第一个按钮,当我再次按下时,启用第二个按钮...
感谢
答案 0 :(得分:3)
if (button1.enabled == YES)
{
button1.enabled = NO;
button2.enabled = YES;
}
else (button2.enabled == YES)
{
button2.enabled = NO;
button1.enabled = YES;
}
这就是你要找的东西吗?这将是另一个按钮的IBAction。
答案 1 :(得分:0)
你在说
if (button1.enabled = NO) {
当你可能意味着
if (button1.enabled == NO) {
=
是赋值运算符,==
是布尔等于运算符。你现在正在做的是为button1.enable分配YES,这显然启用了button1。然后,因为button.enable为true,所以control输入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
。
答案 2 :(得分:0)
button1.enable = YES
应为button1.enable == YES
更易读的形式:[button1 isEnabled]