如何在UIButton上按下双按钮取消操作?

时间:2011-10-11 19:45:31

标签: iphone ios uibutton

我有UIButton点击后开始搜索数据。但在搜索时,如果用户再次点击该按钮,则会取消搜索。

相关守则:

    - (void)searchAction:(UIButton *)sender {

    [sender removeTarget:self action:@selector(searchAction:) forControlEvents:UIControlEventTouchUpInside];
    [sender addTarget:self action:@selector(cancelSearch:) forControlEvents:UIControlEventTouchUpInside];  
    [animatedImages startAnimating];
    //action that should be done

}

- (void)cancelSearch:(UIButton *)sender {
    [sender removeTarget:self action:@selector(cancelSearch:) forControlEvents:UIControlEventTouchUpInside];
    [sender addTarget:self action:@selector(searchNearbyAction:) forControlEvents:UIControlEventTouchDown];
    [animatedImages stopAnimating];

}

所以基本的想法是当我点击它时它的功能改变为取消和副verca

问题是,当我第一次点击它时,它会调用searchAction,然后无缘无故地调用cancelSearch

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:5)

解决方法是将BOOL添加为实例变量

BOOL canCancel;

然后执行以下操作

- (void)buttonClicked:(UIButton *)sender {
      if (!canCancel) {
           // action that should be done
           canCancel = YES;
      } else if (canCancel) {
           // cancel action
           canCancel = NO;
      }
}