我的应用中有两个类GHHaiku
(NSObject
的子类)和GHViewController
,导入GHHaiku
。在GHViewController
中,我实例化GHHaiku
,如此:
@property (nonatomic, strong) GHHaiku *ghhaiku;
因此,当我需要在GHHaiku
中调用来自GHViewController
的方法时,我可以[self.ghhaiku callThisMethod];
但是,如果GHHaiku
需要来自GHViewController
的信息,我无法弄明白该怎么做。例如,UISegmentedControl
中有一个GHViewController
,GHHaiku
中有一个方法需要知道UISegmentedControl
的哪个部分已被选中。我如何获得这些信息?我想我可以在int
中创建GHHaiku
属性,然后在GHViewController
中将UISegmentedControl
的值分配给该属性,但这看起来很麻烦,我可以'想象一下,没有更优雅的方式去做。
那我该怎么办?
(我怀疑Refer to a main view controller property by another class可能会回答我的问题,但我还不够先进,无法理解给出的答案。)
答案 0 :(得分:1)
这是一个架构问题,可以从考虑separation of concerns中获益,并且更明显地沿着MVC(模型/视图/控制器)线分解。请参阅有关Cocoa MVC能力的this。
GHHaiku
是模型对象吗?如果是这样,那么它不应该真正“知道”视图层中发生的事情。