如何在UITabBarController中为所有VC创建单个共享模型?

时间:2012-03-25 19:07:29

标签: objective-c uitabbarcontroller

我有一个UITabBarController,标签中的所有VC都使用相同的模型(每个标签只是以不同的方式显示模型)。如何创建此模型并在其他VC中共享?我是否在登陆VC中初始化它(当用户打开应用程序时),然后使用prepareForSegue或其他内容将其传递给其他人?或者是否有另一种方法可以在应用程序中的VC之间创建“共享”模型/类?

2 个答案:

答案 0 :(得分:2)

你基本上有3种方法。

1st:使用您的AppDelegate存储模型并使用以下命令访问它:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.model

第二:你可以使用单身人士(共享实例):

教程:http://www.galloway.me.uk/tutorials/singleton-classes/

3rd:使用创建tabbar的工厂类与所有控件共享相同的模型并将其返回到appDelegate。

zoul制作了一个很好的示例项目来说明它是如何工作的:https://github.com/zoul/Singletons-Suck

第三是我最喜欢的=)

答案 1 :(得分:0)

您可以在AppDelegate中将其初始化为类属性,并从任何地方调用它:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.myModel....