在Objective C中在视图控制器之间传递对象

时间:2010-07-06 05:07:35

标签: objective-c

我有一个非常简单的基于iPhone视图的应用程序,我需要帮助。这是一个带导航功能的基于视图的应用程序。页脚中的栏可在4个视图控制器之间切换。

我需要做的是将UILabel值从视图2传递到视图4. UILabel字段是在视图2中计算的值,但我希望它出现在视图4中(如果5 + 5 = 10,我想要10出现在视图控制器4中,而不是视图控制器2)。

我该怎么做呢?有没有人有我可以查看的示例代码?我在Apple的文档和在线搜索了一段时间,但还没有找到任何有用的东西。请记住,我是一个真正的新手。谈到发展。我刚刚开始学习!

提前致谢。

3 个答案:

答案 0 :(得分:1)

有几种方法。我可能只是在应用程序委托的界面中创建了一个变量,只需更改它并在那里访问它。

NSObject *myVariableFromDelegate = [[[UIApplication sharedApplication] delegate] myVariable];

[[[UIApplication sharedApplication] delegate] setMyVariable:10];

答案 1 :(得分:0)

看看NSNotificationCenter。您可以在应用程序的任何位置发送消息并处理它们,这是大多数类似情况下的最佳解决方案。

答案 2 :(得分:0)

应用程序委托可能适合您,但如果您要记录大量值,则最好为数据实现单独的类。否则它会变得笨拙。

加载新视图时,将指向数据cass的指针传递给该视图控制器,以便可以拉出当前值并将其放入正确的字段中。此外,您可以在视图控制器中使用注册通知来捕获其他视图所做的任何更改。只需确保在视图卸载时取消注册通知,您应该是好的。