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

问题描述:

我是iphone开发和目标c的新手,但希望有些人比我更聪明,可以伸出援助之手。这是我的问题:在视图控制器之间传递非静态对象

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

示例:

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

7视图控制器计算副本X价格=总计

在我的研究摸索出单方式,但似乎仅限于静态数据。

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

在此先感谢!

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

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

[ThatCrazySingleton sharedInstance].copies = 5; 

写作。

希望这是你在找什么。

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

+0

感谢您的快速响应。是的,只有一个“副本”的共同对象,但该值是用户输入。所以,我无法用硬编码来表示“5”。 这听起来像消息传递可能是要走的路。你有任何参考/示例代码,我可以看看了解更多? – user390834 2010-07-14 01:20:24

+0

值是用户输入是没有问题的。你可以设置它,例如,一个按钮的touchUpInside(所以可能会是'[ThatCrazySingleton sharedInstance] .copies = myTextField.text;')TextField将被连接到一个IBOutlet。但是,你应该回去做一些基本的教程,然后大部分这可能是有道理的。 – 2010-07-14 01:25:39

+0

以下是我无法过去的问题。 这是我单独设置的类 MyManager.h MyManager。米 这是在用户输入了“拷贝”之类的UITextView SixthViewController.h SixthViewController.m 这是我所需要的拷贝值,以显示。 SeventhViewController.h SeventhViewController.m 所以,我将不得不在#6上创建一个按钮,以在MyManager中设置一个值。它不适合我。如果你可以详细说明你所说的那些教程可能会有所帮助。 – user390834 2010-07-14 03:39:10