我想从完成块内弹出一个显示,但我也想从同一个块内dismissModalViewControllerAnimated(但在弹出窗口完成之后)。请注意,弹出窗口计划并在完成块执行完成后运行,这意味着它永远不会发生,因为解雇是同步的......
因此,一个快速的解决方法是找到一种在弹出窗口后异步安排解雇的方法。有链接方法吗?一种强制保持异步任务运行并等待它们的方法?
我想从完成块内弹出一个显示,但我也想从同一个块内dismissModalViewControllerAnimated(但在弹出窗口完成之后)。请注意,弹出窗口计划并在完成块执行完成后运行,这意味着它永远不会发生,因为解雇是同步的......
因此,一个快速的解决方法是找到一种在弹出窗口后异步安排解雇的方法。有链接方法吗?一种强制保持异步任务运行并等待它们的方法?
使用-performSelector:withObject:afterDelay:
. 您需要将解雇包装在与 所需的签名匹配的选择器中-performSelector:...
,因为dismissModalViewControllerAnimated:
需要BOOL
.
您可以使用 dispatch_after 代替,它会被动画地关闭。检查这个简单的示例代码:
int64_t delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self dismissModalViewControllerAnimated:YES];
});