0

在我的故事板中,App 工作流程设计是这样的

-> NavigationController -> ViewControllerX -> TabBarController -> NavigationController -> ViewControllerA
                                                               -> NavigationController -> ViewControllerB
                                                               -> NavigationController -> ViewControllerC

关于封装设计模式,我想知道以下哪种方法最适合共享从 segueingViewControllerXTabBarController包含的数据ViewControllerA/B/C

  1. 使用自定义属性对 TabBarController 进行子类化。然后在 segueing 时将数据传递给 TabBarController。每个ViewControllerA/B/C“拉”数据viewDidLoadCustomVar *myCustomVariable = self.tabBarController.myCustomVariable.

  2. 创建一个单例。

我更喜欢方法 1,因为项目中有更多 ViewController,并且共享仅在ViewControllerX和之间ViewControllerA/B/C。这有什么问题吗?

4

1 回答 1

0

我根本看不到任何问题。每次遇到类似情况时,我都会这样做。对于像这样的“简单”情况,无需寻找比这更复杂的东西。

除了我自己的经验,我真的没有任何东西可以支持我的回答。我认为方法 1 没有什么不好的。

关于解决方案 2,当我在整个应用程序中需要数据时,我通常将 AppDelegate 用作“单例”。我听说过这方面的好与坏,但我从未遇到过任何不好的事情,而且我一直在使用它。但是考虑到您的情况,我宁愿选择解决方案 1。我会说解决方案 2 用于整个应用程序工作流程中使用的数据。

编辑 :

以下是如何将AppDelegate 用作单例

于 2013-01-28T08:34:15.637 回答