相同的按钮应该执行多项任务

时间:2011-03-26 22:40:51

标签: iphone uibutton

我希望我的一个按钮在不同的水龙头上表现不同。因为它是我每次特定动作发生时使用的相同按钮。

有办法做到这一点吗?

谢谢,

4 个答案:

答案 0 :(得分:2)

添加额外的UIGestureRecognizer;) 单击是可以链接的动作,但您可以添加其他类型的手势,如双击,滑动等。

答案 1 :(得分:2)

您可以使用按钮的tag属性;所以在你的IBAction方法中。

-(void)buttonClicked:(id)sender{
    UIButton *button = (UIButton *)sender;
    if (button.tag == 1) {
        // perform your required functionality
        button.tag = 2;
    }
    else if (button.tag == 2) {
        // perform your required functionality
        button.tag = 3;
    }
    else if (button.tag == 3) {
        // perform your required functionality
        button.tag = 1;
    }
}

不要忘记将初始标记值设置为1。

答案 2 :(得分:1)

如果您希望按钮的行为不同,您可以创建不同的方法来执行不同的操作。然后,只要您想要更改按钮行为,您应该设置按钮以处理所需的操作。

所以对于第一个动作:

[button addTarget:self action:@selector(method1:) forControlEvents:UIControlEventTouchUpInside];

- (void) method1
{
//set button to handle method 2
[button addTarget:self action:@selector(method2:) forControlEvents:UIControlEventTouchUpInside];
}

- (void) method 2
{

}

答案 3 :(得分:0)

该按钮在点击时只调用视图控制器中的方法。从那里你做这样的事情:

if (internalState == FOO) {
  [self doA];
} else {
  [self doB];
}