我应该避免使用单例作为TabBarController的数据源(我怎么能)

时间:2013-11-21 20:20:08

标签: ios objective-c singleton tabbarcontroller

我有一个TabBarController作为初始场景;每个标签使用基本相同的信息。此信息仅在运行时可用,并通过json检索。这些信息不会被我的应用程序更改,但可能会在另一方面被更改,并且可能会在下次刷新时发生变化。

这是单身人士的有效案例吗?

我想在TabBarController创建之前加载信息并将其传递给它的标签,但我现在遇到了几个缺点:(每个人面前有一个大的AFAIK)

  • 检索是在UI绘制之前完成的,可能需要一段时间才能缓慢连接。
  • 如果没有一百万条通知,则无法在以后刷新信息,因为我无法在层次结构中将其传回。
  • 该应用无法启动/离线工作,以后可以在线切换。
  • 它无法使用故事板TabBarController,因为我必须覆盖所有制表符启动。

使用单身人士持有信息是我到目前为止唯一的缺点是,如果我直接指向它,那么刷新背景信息可能会使UI看起来很乱。 但是我可以从每个导航层获得完全访问权限,这非常诱人。

是否有其他可能的解决方案/最佳实践如何在TabBarController中共享数据?

我希望这不会立即关闭,因为我使用单词...:)

1 个答案:

答案 0 :(得分:1)

单例将起作用并且可以被认为是合适的 - 但不是标签栏控制器数据源。你所谈论的应该是一个单一的数据控制器。它可以拥有您的模型数据并提供触发更新/更改的方法。它可以发布有关更改的通知(它不需要知道有多少视图控制器当前对更改感兴趣)。