同步Cocoa中两个控制器之间的一个对象

问题描述:

我有一个MainController,它创建一个对象(比如多边形),一个控制器(比如polygonViewController)。 PolygonViewController有两个网点:同步Cocoa中两个控制器之间的一个对象

IBOutlet Polygon* aPolygon; 
IBOutlet UILabel* numOfSidesLabel; 

它调解Polygon和PolygonViewController.xib文件。

如何确保PolygonViewController的aPolygon与mainController中创建的多边形相同(实例)?

我试图将@property Polygon* aPolygon;添加到PolygonViewController,然后在MainController中,我做了polygonViewController.aPolygon = polygon;但是,PolygonViewController中的aPolygon的awakeFromNib方法始终为空。

+0

一些代码段将帮助这里.... 你为什么要声明一个IB出路aPolygon当你分配给它的mainController的多边形对象? 因此,我没有一种机制可以使两个不同的XIB文件中声明的两个Polygon对象成为同一个对象。 – 2010-02-06 06:13:11

+0

Hi Deepak: 感谢您的帮助。 MainController中的Polygon对象没有用IBOutlet作为前缀,因此它不在XIB文件中。一般来说,如果我想将控制器类分配给另一个类中创建的对象,那么该方法是什么? – 2010-02-07 00:48:35

您是否尝试过使用单例对象?

您可以让您的aPolygon类成为单例对象,因此,您将始终使用与您希望使用它的许多viewController中相同的对象。

看看:http://developer.apple.com/Mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW32

希望这将帮助你!

干杯,
VFN

+0

嗨vfn: 这可能是一个可能的解决方案。我会放弃它。 欢呼声 – 2010-02-07 00:54:40