在不同的UIViewController上更新标签

时间:2012-01-08 20:12:03

标签: objective-c uiviewcontroller ios5

我还是iOS开发的新手,我想知道如何完成某些事情。我所拥有的是UIViewController对象FirstControllerSecondController。在FirstController的NIB文件中,我有一个UITextField。在SecondController的NIV文件中,我有一个UILabel。

我想要做的是在更新UITextVew时用新值更新UILabel。到目前为止,我在FirstController中有以下内容:

    - (IBAction)tbxName_EditingChanged:(id)sender;

SecondController我在Outlet Collection中有标签,如下所示:

    @property (retain, nonatomic) IBOutletCollection(UILabel) NSArray *lblName;

现在,我已经制作了这个系列,因为我打算在将来添加更多需要更改的标签,并且所有标签都具有相同的价值。

所以,我认为我必须做的是将SecondController的引用放入我的FirstController,以便我可以运行自定义'更新'方法。像这样:

    FirstController *viewController1 = [[[FirstController alloc] initWithNibName:@"FirstController" bundle:nil] autorelease];
    SecondController *viewController2 = [[[SecondController alloc] initWithNibName:@"SecondController" bundle:nil] autorelease];
    viewController1.secondView = viewController2;
    // do the rest to load the views...

现在,我已经了解到,我在.net中学到的很多东西,不是你在Objective C中做事的方式。我想知道这是我必须做的,还是有另一个我没有找到谷歌的方式?

感谢您的帮助,我希望我能够清楚地解释这一点。

1 个答案:

答案 0 :(得分:3)

以可预测的,可靠的方式解决这些问题是Model-View-Controller设计模式的重点。关键是,您希望第一个UIViewController更新模型,这将通知第二个UIViewController更新其视图。

我建议在某处使用模型。使用singleton,首先在应用委托中初始化,或core data,这是一个更先进但非常强大。