Ios 这是延迟解除ModalViewController的一种方式吗?
我想从一个完成块内弹出一个显示,但我还想从同一块内(但在弹出完成后)解除ModalViewController初始化。请注意,弹出窗口将在完成块执行完成后调度和运行,这意味着它永远不会发生,因为解雇是同步的Ios 这是延迟解除ModalViewController的一种方式吗?,ios,Ios,我想从一个完成块内弹出一个显示,但我还想从同一块内(但在弹出完成后)解除ModalViewController初始化。请注意,弹出窗口将在完成块执行完成后调度和运行,这意味着它永远不会发生,因为解雇是同步的 因此,一个快速解决方案是找到一种方法,在弹出窗口之后异步安排解雇。有链接方法吗?强制保持异步任务运行并等待它们的方法?使用-performSelector:withObject:afterDelay:。您需要将解雇包装在一个与-performSelector:…所需签名匹配的选择器中,因为解
因此,一个快速解决方案是找到一种方法,在弹出窗口之后异步安排解雇。有链接方法吗?强制保持异步任务运行并等待它们的方法?使用
-performSelector:withObject:afterDelay:
。您需要将解雇包装在一个与-performSelector:…
所需签名匹配的选择器中,因为解雇ModalViewController初始化:
接受一个BOOL
您可以改为使用dispatch\u,它将被动态解雇。检查以下简单示例代码:
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];
});
-performSelector:withObject:afterDelay:
是否不执行您需要的操作?您需要包装解雇,因为dismissModalViewControllerAnimated:
需要BOOL
,但它应该可以工作。回答这个问题,我会检查它作为解决方案!