首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS didFailWithError和调用dismissViewController导致错误

iOS didFailWithError和调用dismissViewController导致错误
EN

Stack Overflow用户
提问于 2014-05-19 05:55:31
回答 2查看 157关注 0票数 0

所以我的设置非常简单,我有:

控制器A控制器B

控制器A的段连接到控制器B,这是一个模式显示。

当控制器B的viewDidLoad触发时,我用request实例化NSURLConnection并立即启动。

如果没有网络连接,那么didFailWithError就会被触发。

在这里,我调用dismissViewController,但当我这样做时,我会收到:

“正在进行演示或取消操作时,尝试从视图控制器中取消!”

导致此错误的可能原因是什么?

我在控制器B上也有一个按钮,当被点击时,它也会执行dismissViewController,但它是正确的。

这会不会是一种竞争情况,一旦控制器B命中viewDidLoad,它还没有完成动画/显示,而URL连接产生并立即失败?

如果是这样的话,解决这个问题的正确方法是什么?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-05-19 06:00:25

在视图控制器完全呈现之前,您不能忽略它。如果你还在使用viewDidLoad,情况肯定不会是这样,我认为在viewWillAppear中也不会是这样。viewDidAppear是最早的状态,你可以保证视图控制器的表示是完整的,并且准备好被解除。

话虽如此..。从UI的角度来看,最好是尝试在后台启动NSURLConnection,如果您有一个良好的网络连接,那么您将呈现视图控制器B,如果没有,则干脆永远不呈现它,而不是呈现并立即关闭。

票数 1
EN

Stack Overflow用户

发布于 2014-05-19 08:21:41

看起来像是竞争状态。您可以尝试在failToLoad委托中执行此操作并查看吗?

代码语言:javascript
复制
//Goes into the failed delegate
dispatch_async(dispatch_get_main_queue(), ^{
    //dismiss the View Controller here??
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23727268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档