2012-01-08 68 views
1

我还是iOS开发新手,我想知道如何完成某件事。我拥有的是UIViewController对象FirstControllerSecondController。在用于FirstController的NIB文件中,我有一个UITextField。在SecondController的NIV文件中,我有一个UILabel。在不同的UIViewController上更新标签

我想要做的是在更新UITextVew时使用新值更新UILabel。到目前为止,我在我的FirstController如下:

- (IBAction)tbxName_EditingChanged:(id)sender; 

SecondController我的标签,一个出口集合,像这样:

@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中,是不是你做的目的C.事情,我想知道的方式,如果这就是我。必须这样做,还是有另一种方法,我没有找到谷歌?

感谢您的任何帮助,我希望我对此有足够清楚的解释。

回答

3

以一种可预测,经过验证的方式解决这些问题是Model-View-Controller设计模式的要点。重点是,你想让第一个UIViewController更新模型,这将表明第二个UIViewController更新它的视图。

我建议有一个模型的地方。通过使用singleton(首先在应用程序代理中初始化)或core data(它稍微先进但非常强大)。

+0

谢谢,对不起,我没有早点检查。我有一些关于UITableView的“学习”。这真的有帮助! – 2012-01-09 15:37:36