采取以下示例..
单个tabBarController在两个视图之间切换,每个视图由它们自己的视图控制器处理(比如说viewController1,viewController2)。
我有一个名为Widget的类,它具有属性'name'。
所以我在view1中有代码,它将读取文本字段的内容并设置我的widget对象的'name'属性。
我想在view2中使用代码来读取窗口小部件对象的'name'属性并显示在某处。
1。我将在哪里声明我的widget类的实例?在tabBarController中?
2。如果是这样,我将如何在其他两个viewcontrollers中访问该实例?
提前致谢!
答案 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上完美编译和执行。