iPhone:如何从另一个控制器类访问View Controller类中的数据?

时间:2010-02-27 10:11:19

标签: iphone uiviewcontroller datamodel

在我的应用程序中,我有一个Entry表单,其中有六个Text字段

  1. 名称:UITextField
  2. 出生日期:UITExtField
  3. 年龄:的UITextField
  4. 地址:UITextField
  5. 电话号码:UITextField
  6. 图片:UIIMageView
  7. 现在我想要的是我想要所有这些字段值在其他ViewController类的相同字段中。怎么可能。

    请帮助我,我真的需要帮助...

    特别感谢提前

2 个答案:

答案 0 :(得分:2)

您可以通过在委托类中实现getter和setter来实现这一目标。

在委托.h文件中

包括UIApplication委托

 @interface DevAppDelegate : NSObject <UIApplicationDelegate>

 NSString * currentTitle;

- (void) setCurrentTitle:(NSString *) currentTitle;
- (NSString *) getCurrentTitle; 

在Delegate实现类.m

-(void) setCurrentLink:(NSString *) storydata{
currentLink = storydata;

}

-(NSString *) getCurrentLink{
if ( currentLink == nil ) {
currentLink = @"Display StoryLink";
}
return currentLink;
}

因此,要评估的变量是通过setters方法和类在currentlink字符串中设置的,只需使用getter方法。

答案 1 :(得分:1)

您真正需要的是数据模型对象。

数据模型是专用类的对象,用于存储和逻辑操作应用程序数据。它应该是视图或视图控制器中完全独立的类。它应该在应用程序内普遍可访问,最好是单例。

(Warrior的解决方案是一个轻量级的解决方案,可以将app委托转变为数据模型对象。它适用于小型,快速和脏的应用程序。随着数据变得越来越复杂,它将崩溃。)

在您的情况下,控制器A会将收集的数据写入数据模型,然后关闭其视图。控制器B在激活时,检查数据模型并读出所需的信息。

使用数据模型的美妙之处在于它具有旧式全局变量的灵活性以及使用专用于维护数据的类的安全性 完整性。

有关详细信息,请参阅: Pattern for Ownership and References Between Multiple Controllers and Semi-Shared Objects?

Simple MVC setup / design?