0

我想从完成块内弹出一个显示,但我也想从同一个块内dismissModalViewControllerAnimated(但在弹出窗口完成之后)。请注意,弹出窗口计划并在完成块执行完成后运行,这意味着它永远不会发生,因为解雇是同步的......

因此,一个快速的解决方法是找到一种在弹出窗口后异步安排解雇的方法。有链接方法吗?一种强制保持异步任务运行并等待它们的方法?

4

2 回答 2

1

使用-performSelector:withObject:afterDelay:. 您需要将解雇包装在与 所需的签名匹配的选择器中-performSelector:...,因为dismissModalViewControllerAnimated:需要BOOL.

于 2012-10-03T19:15:03.690 回答
1

您可以使用 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];
});
于 2012-10-03T19:33:23.633 回答