2011-08-24 31 views
0

我想说明一个UIActionSheet这与功能B.所完成的功能完成后几秒钟推出函数B后3秒功能的完成(使用MBProgressHUD)

它的伟大工程,如果我不喜欢这样写道:

main function 
{ 
[self function A] 
[self performSelector:@selector(function B) withObject:nil afterDelay:5]; 
} 

但我使用MBProgressHUD作为活动的指标:

main function 
{ 
[HUD showWhileExecuting:@selector(funcion A) onTarget:self withObject:nil animated:YES]; 
[self performSelector:@selector(function B) withObject:nil afterDelay:5]; 
} 

不起作用,函数B不会被调用。如果我将它切换到[self function B],它将被调用。我猜这是线程问题,我还不明白。如果我使用[self performSelectorOnMainThread]它会调用函数B,但它看起来不像我可以延迟那一个。

回答

0

您的问题是HUD在主线程上被调用并且未设置为等待。因此,它会关闭您的functionA,然后立即调用您的performSelector函数B.如果您希望函数B正确执行,则必须在函数A的末尾调用它。