我正在开发一个基于导航的应用程序。每个屏幕所需的所有数据都从网络服务器下载。我开始在viewDidLoad方法下载。 ALl downloadinh异步发生,各个viewcontroller将通过委托模式接收数据。现在我的问题是新的viewcontroller被推入导航堆栈或当前视图控制器在收到数据之前如此快速地弹出,我们将如何处理这种情况?我们不想阻止UI,因此用户可以前后移动。我使用通知机制来检测特定的视图控制器(接收数据的人)是否活着,但它似乎不是一个具体的解决方案。所以基本上我想在我调用它的委托方法之前检测接收器是否适合接收下载的数据。 与之相关的任何指针都非常值得注意。
谢谢! Nilesh制作
答案 0 :(得分:0)
我认为dataSource模式更合适。
1)创建数据源(单例或附加在您的应用代理中)
2)实现方法dataWithPredicate :(或只是数据)
3)更新数据时通知您的viewController(使用NSNotificationCenter)
4)从控制器重新加载数据(使用dataWithPredicate:call)
另一种方法是使用核心数据。 CoreData生成所有通知并为您完成工作。