在视图控制器之间传递非静态对象

时间:2010-07-14 00:08:50

标签: iphone objective-c uiviewcontroller

我是iphone开发和目标c的新手,但希望一些比我更聪明的人可以伸出援助之手。这是我的问题:

我有一个基于视图的应用程序,有大约7个不同的视图控制器。用户通过底部标签栏导航。我让用户在第一个视图控制器中输入数据到名为“副本”的对象。我需要将副本值传递给另一个控制器,以便它可以用于计算。这需要在应用程序其他控制器中的许多对象上完成。

示例:

用户在第一个视图控制器中输入Copies值 用户在第6个视图控制器中输入Price值。

第7个视图控制器计算副本x价格=总计

在我的研究中,我制定了单例方法,但这似乎仅限于静态数据。

确保另一个视图控制器可以访问用户填写的对象的最佳方法是什么?我正试图避免目前使用SQLite路由。我想坚持一些基本的东西,并在复杂性方面努力工作。有没有人有我可以查看的示例代码?看看其他人之前如何解决这个问题确实很有帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,整个应用中只有一个copies值和一个price值。如果是这样的话......

有很多方法可以做到这一点。最简单的方法(也许):您可以创建一个您定义的类的Singleton对象,该类具有copiesprice作为属性。 Objective-C中的Singleton是here,您可以在Singleton类中定义属性。然后,您只需调用其共享实例并使用其上的值。所以你的代码看起来像这样:

   [ThatCrazySingleton sharedInstance].copies = 5;

写作。

希望这是你正在寻找的。

如果您不想使用Singleton,在某个时刻,其中一个UIViewControllers需要使用副本和价格值向其他人发送消息(希望在对象中包装[“封装”])。这意味着您必须获得对其他View控制器的引用,您可以通过遍历层次结构来执行此操作。