如何将字符串从控制器的UITextField传递给模型

时间:2013-07-12 18:39:30

标签: iphone ios objective-c model-view-controller

IBOutlet UILabel *display;
IBOutlet UITextField *textfield;

并且,我有这个按钮可以将文本从文本字段更新为标签

-(IBAction)updateLabel:(id)sender
{
    display.text=textfield.text;
}

如何将这样的字符串传递给模型(比如字符串“hello world”到Save.h)以供进一步使用?例如,我可能想将这些字符串保存在文件中。

2 个答案:

答案 0 :(得分:1)

有多种方法,所以你应该学习并习惯了解你的选择。有些是快速的,但往前看你可能需要更多的选择,并且最终会以另一种方式重新编写代码,所以就像我说知道所有选项都有用,因为不仅有一种方法可以做。

  1. 委托 http://www.roostersoftstudios.com/2011/04/12/simple-delegate-tutorial-for-ios-development/

  2. nsuserdefaults快速保存到本地文件并重新打开以检索value..simple和quick for small things,不建议传递大数据。 http://iphonedevsdk.com/forum/iphone-sdk-tutorials/106311-tutorial-1-how-to-use-nsuserdefault.html

  3. 单身人士,喜欢和讨厌,取决于您与谁交谈或如何使用或过度使用。 http://www.galloway.me.uk/tutorials/singleton-classes/

  4. coredata对于这个问题非常重要,但很多字符串,详细视图控制器,基于sql和快速,但具有所有选项中最多的学习曲线。

  5. 传递segues是一个提及,但不是你的问题。

  6. nsnotification可以完成它,通常用于两个生活/初始化对象之间的快速传递。可能不是最适合您的问题,但这是一个教程。 Send and receive messages through NSNotificationCenter in Objective-C?

  7. 并且正如另一个用户所提到的那样创建对象的实例,如果您是该实例的父/创建者,则可以访问属性...对我来说,使用它取决于结构/层次结构您的应用程序或需求,因为如果您的子对象/您的保存类想要检查已保存的内容并发回数据,那么您将不得不考虑其他选项之一。

答案 1 :(得分:0)

  1. 在Save.h中创建公共变量

    Save.h

    @interface Save {
    }
    
    @property (nonatomic, retain) NSString *text;
    
    @end
    
  2. 合成.m文件中的变量。

    Save.m

    @implementation Save
    
    @synthesize text;
    
    @end
    
  3. 在当前控制器中,创建一个Class Save类。

  4. 将值设置为变量

    -(IBAction)updateLabel:(id)iSender{
        display.text=textfield.text;
    
        Save *aSaveObject = [Save alloc] init];
        aSaveObject.text = textfield.text;
        [aSaveObject release];
    }