iOS - 在applicationDidBecomeActive中更新视图控制器

时间:2011-08-17 23:58:07

标签: iphone ios notifications viewcontroller

我目前正在开发一款通过REST与网络服务器进行通信的iPhone应用程序。

每次应用启动时,都会检查远程数据更新。如果尚未加载数据,则在应用程序委托applicationDidBecomeActive中启动异步请求,并在请求运行时显示模式进度视图。我的一些视图控制器还需要一个数据更新,应该在同一个进度视图可见时以及第一个请求完成后处理。

处理此方案的最佳方法是什么?在第一个请求完成后向视图控制器发布通知并回调代理以关闭进度视图? 或者这被认为是一个糟糕的解决方案?

最好的问候

的Carsten

1 个答案:

答案 0 :(得分:1)

如果发件人对观察员一无所知(不应该依赖),则应使用发布通知。例如,数据对象在更改时发布通知,因此连接到它的可视对象可以自行更新。

在您的情况下,您需要拥有一个根对象,即视图控制器的所有者。它可能是您的Application Delegate或导航控制器的子类。由于所有者知道视图控制器,它可以直接告诉他们在请求完成时更新。

通常,不要在所有者及其家属之间发送通知。业主可以直接致电家属的方法。家属可以与其所有者建立弱链接,并在他们更新时通知他们。如果您需要依赖所有者的类独立,请定义委托协议。