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