0

我已经构建了一个使用第二个屏幕的 iOS 5 iPad 应用程序。我们有一个管理视图(在 iPad 上)和一个通过 Apple DVI 适配器连接的启用 HDMI 的电视的外部视图。iPad 视图和电视视图都从每隔几秒进行的服务调用中获取相同的数据更新。然后,我们将收到的数据呈现为一系列图表;对于电视和 iPad 视图,图表数据的呈现方式非常不同 - 但核心数据字典是相同的。我想知道一种优雅的方式来构建这个解决方案。目前,我有一个视图控制器(管理员 iPad VC)使用 GCD 进行服务调用,然后调度 NSNotifications 来更新另一个(TV)视图控制器上的数据(图表)属性。我' m 考虑将服务调用从 VC 移开并创建一个在应用程序控制器中初始化的单例。然后我(不知何故)将两个 VC 设置为代表,并使用简单的协议对其进行更新。我不完全确定这是一个好方法还是我应该考虑别的?我什至可以将两个 VC 都设置为另一个类的代表,还是每个类实例通常只有一个代表?

感谢您的任何意见。

4

1 回答 1

0

为什么不将图表数据抽象到它自己的模型类中,你可以在两个视图控制器中共享它呢?模型类可以负责获取新数据。为了让控制器知道更新,他们可以在模型对象上使用 KVO,或者他们可以观察模型对象在更新发生时发送的通知,或者您可以为模型对象设置一个委托数组,每个视图控制器都可以做代表。

似乎没有任何令人信服的理由让它成为单例,尽管如果你真的愿意,你可以这样做。

于 2012-02-21T23:10:34.480 回答