【问题标题】:iPhone: How I can Access Data in a View Controller Class from Another Controller Class?iPhone:如何从另一个控制器类访问视图控制器类中的数据?
【发布时间】:2011-01-21 18:17:38
【问题描述】:

在我的应用程序中,我有一个条目表单,其中有六个文本字段

  1. 名称:UITextField
  2. 出生日期:UITextField
  3. 年龄:UITextField
  4. 地址:UITextField
  5. 电话号码:UITextField
  6. 图像:UIIMageView

现在我想要的是我希望所有这些字段的值在其他 ViewController 类的相同字段中。这怎么可能。

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

提前特别感谢

【问题讨论】:

    标签: iphone uiviewcontroller datamodel


    【解决方案1】:

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

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

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

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

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

    更多详情见: Pattern for Ownership and References Between Multiple Controllers and Semi-Shared Objects?

    和

    Simple MVC setup / design?

    【讨论】:

      【解决方案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;
      }
      

      所以你要评估的变量是通过setter方法和你想要字符串的类在currentlink字符串中设置的,只需使用getter方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-17
        • 1970-01-01
        相关资源
        最近更新 更多