不从方法触发UIButton的事件处理程序

时间:2013-05-02 11:35:45

标签: ios uibutton

我只需要以编程方式触发UIButton。我见过许多帖子,例如http://stackoverflow.com/questions/5625651/programmatically-fire-button-click-event

  

[btnLocations sendActionsForControlEvents:UIControlEventTouchDown];

此语句在“viewDidLoad”以及另一个按钮处理程序中正常工作。

-(void)viewDidLoad
{
[btnName2 sendActionsForControlEvents:UIControlEventTouchDown];
}

&&&&&&&

- (IBAction)btnName1:(id)sender {
[btnName2 sendActionsForControlEvents:UIControlEventTouchDown];
}

这很好用。但是为什么它不是从用户定义的方法触发的。 像这样:

-(void) myMEthod
{
  if(true)
{
 [btnName2 sendActionsForControlEvents:UIControlEventTouchDown];
}
}

简单的一个。但我没有得到理由

我只需要知道它为什么不发生?实现它的任何替代方案?

感谢。

1 个答案:

答案 0 :(得分:3)

尝试在另一个线程上调用UI事件可能是个问题。尝试添加:

    - (void)fireButtonEvent:(id)unused
    {
            [btnName2 sendActionsForControlEvents:UIControlEventTouchDown];
    }

然后使用

进行呼叫
    [self performSelectorOnMainThread:@selector(fireButtonEvent:)
          withObject:nil
          waitUntilDone:false];