我只需要以编程方式触发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];
}
}
简单的一个。但我没有得到理由
我只需要知道它为什么不发生?实现它的任何替代方案?
感谢。
答案 0 :(得分:3)
尝试在另一个线程上调用UI事件可能是个问题。尝试添加:
- (void)fireButtonEvent:(id)unused
{
[btnName2 sendActionsForControlEvents:UIControlEventTouchDown];
}
然后使用
进行呼叫 [self performSelectorOnMainThread:@selector(fireButtonEvent:)
withObject:nil
waitUntilDone:false];