iphone-sdk,在多个视图之间共享数据

时间:2009-04-02 00:26:36

标签: objective-c iphone

采取以下示例..

单个tabBarController在两个视图之间切换,每个视图由它们自己的视图控制器处理(比如说viewController1,viewController2)。

我有一个名为Widget的类,它具有属性'name'。

所以我在view1中有代码,它将读取文本字段的内容并设置我的widget对象的'name'属性。

我想在view2中使用代码来读取窗口小部件对象的'name'属性并显示在某处。

1。我将在哪里声明我的widget类的实例?在tabBarController中?

2。如果是这样,我将如何在其他两个viewcontrollers中访问该实例?

提前致谢!

1 个答案:

答案 0 :(得分:6)

您可以将您的窗口小部件类作为属性放在Application Delegate上。

@interface youAppDelegate : NSObject <UIApplicationDelegate> {
   Widget *myWidget;
}

@property (readonly) Widget *myWidget;

@end

然后,在应用程序代理的“applicationDidFinishLaunching”消息上实例化它。

完成后,您可以从项目的任何位置访问myWidget,如下所示:

youAppDelegate *ad = (youAppDelegate*)[UIApplication sharedApplication].delegate;
Widget *w = [ad myWidget];

该代码可以在viewController1,viewController2甚至tabBarController上完美编译和执行。