【问题标题】:Updating Labels on a different UIViewController在不同的 UIViewController 上更新标签
【发布时间】:2012-01-08 20:12:03
【问题描述】:

我还是 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 中做事的方式。我想知道这是我必须做的,还是还有其他的我在 Google 上找不到的方式?

感谢您的帮助,我希望我解释得足够清楚。

【问题讨论】:

    标签: objective-c uiviewcontroller ios5


    【解决方案1】:

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

    我建议在某个地方有一个模型。要么使用singleton,首先在应用程序委托中初始化,要么使用core data,它更高级但非常强大。

    【讨论】:

    • 谢谢,抱歉我没有早点检查。我有一些关于 UITableView 的“学习”要做。这真的很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多