如何为单个uibutton动作执行两个不同的功能

时间:2014-03-21 10:59:08

标签: ios objective-c uibutton

我有一个UIButton和一个动作。现在我需要在用户第一次点击按钮时执行一些任务,而当用户第二次点击时需要执行另一组语句。我怎么能这样做? 提前致谢

5 个答案:

答案 0 :(得分:4)

不明白您的问题是什么,但根据问题标题,您需要创建两个方法,您希望在单个按钮中执行备用操作点击事件,例如: -

-(void)MethodFirst
{
// your code
}

-(void)Methodsecond
{
// your code
}

-(IBAction)Yourbuttonclick:(UIButton *)sender
{
   sender.selected=!sender.selected;
   if (sender.selected)
   {
       [self MethodFirst];
   }
   else
   {
      [self Methodsecond];
   }
}

答案 1 :(得分:0)

在你的函数中定义一个static int counter = 0,并在每次按下按钮时递增计数器,例如,counter++;然后有一个if语句

if(counter == 0){
//do first set of instructions
}
else {
//do second set
}

答案 2 :(得分:0)

假设下面的一个是您的行动。全局采取bool变量说BOOL isalreadyClicked;并将其设置为NO。

- (void)buttonClicked:(UIButton *)sender
{
if(isalreadyClicked)
{
 /// your work here

 isalreadyClicked=NO;
}
else
{
 /// your work here
 isalreadyClicked=YES;   
}
}

希望这会有所帮助

答案 3 :(得分:0)

首次为按钮添加标签并在操作方法中检查标签 蛋 button.tag = 100; //第一次

-(void)buttonaction:(UIButton*)sender{
if(sender.tag == 100){
// do something for first time
sender.tag = 200;
}
else if(sender.tag == 200) { //second time
// do something for second time
}
}

答案 4 :(得分:0)

使用BOOL值。

在你的.m:

-(IBAction)methodButton{

    self.flag = !self.flag;

    if (self.flag == YES){
       //Here do your first task


    }

    if (self.flag == NO){
       //Here do your second task
    }

}