3

我只需要以编程方式触发 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];
}
}

简单的一个。但我没有得到原因

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

谢谢。

4

1 回答 1

3

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

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

然后调用使用

    [self performSelectorOnMainThread:@selector(fireButtonEvent:)
          withObject:nil
          waitUntilDone:false];
于 2013-05-02T11:53:30.963 回答