基于导航的应用:当控制器不再是当前控制器时刷新ui元素



我的应用使用自定义导航控制器。

当我在导航堆栈上推送UIVIewController时,我必须通过网络加载数据。

我使用:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
});

来加载我的数据,所以应用程序仍然是响应的,所以用户可以按后退按钮,使用:

[self.navigationController popViewControllerAnimated:YES] 

当数据已经加载,我经常刷新UIElement像UITableView, UILabel…当我们按下pushBack按钮时,控制器不再是当前控制器,所以当元素刷新时,一切都崩溃了。

我有两个问题:

  • 我怎么知道控制器刷新设置是当前控制器还是不是?
  • 我想我错过了什么,苹果公司是否不知道会发生这样的事情,他们可能已经设置了一些东西?

谢谢你的帮助,不好意思我的英语。

在加载数据时显示活动指示器。直到数据被加载时才允许用户弹出当前视图控制器。这可以通过在顶部的当前视图中添加透明视图并在加载完成后立即删除透明视图来实现。这个功能可以很容易地使用MBProgressHUD实现。

链接:https://github.com/jdg/MBProgressHUD

最新更新