我正在构建一个 Cocoa 应用程序,它由一个分为 3 个部分的窗口组成。每个部分负责自己的业务,在表格视图、弹出按钮等之间有大约 30 个控件。
我从一个控制器开始,但事情很容易变得混乱,所以我决定将逻辑分解为 3 个控制器对象(视图的每个部分一个)。然后我在 Interface Builder 上创建了 NSObject 引用,并连接了所有的出口、动作、数据源和委托。到现在为止还挺好。
现在,这三个部分相互传递对象,因此我需要一种方法将对象从一个类设置到另一个类。有问题的对象是一个类变量,但由于我没有引用该对象,我不知道如何传递它。
有没有办法做到这一点,或者这只是整体上的错误方法?
解决方案:
正如 Sergio 在下面的评论之一中提到的,解决方案似乎是在每个控制器中创建对其他控制器的弱引用作为 IBOutlet,然后在 Xcode Interface Builder 中将控制器对象链接在一起。因此,现在每个控制器都可以访问所引用控制器的公开方法和变量。