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

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

我曾考虑过在创建TabBarController之前先加载信息并将其传递到其选项卡,但是现在我面临着一些弊端:(每个人前面都有一个很大的AFAIK)


检索是在绘制UI之前完成的,连接缓慢可能会花费一些时间。
如果没有一百万条通知,那么以后刷新信息是不可能的,因为我无法将其传递回层次结构中。
该应用程序无法启动/脱机工作,以后无法联机。
它不能与情节提要TabBarController一起使用,因为我必须覆盖所有选项卡的启动。


单例保存信息时,到目前为止,我唯一能看到的缺点是,如果我直接指向后台,则在后台刷新信息可能会使UI显得混乱。
但是我会从每个导航层获得完全的访问权,这确实很诱人。

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

我希望当我使用单例这个单词时不会立即关闭... :)

最佳答案

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

关于ios - 我应该避免将Singleton用作TabBarController的数据源(以及如何),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20131094/

10-09 16:20
查看更多