我需要将视图控制器的引用传递给它创建的对象之一。我有下面一段代码,在这里我实例化了我的对象
//Method in OwnerClass
- (void) someMethod{
SomeObject *obj = [[SomeObject alloc] init];
obj.instanceVar = self.iVar;
}
现在在SomeObject中,我想访问创建它的所有者(OwnerClass的实例)。
//Method in SomeObject
- (void) callback{
[ownerObj callMethod] //ownerObj is the instance of OwnerClass that created an instance of SomeObj
}
我想知道如何访问SomeObject实例内部的OwnerClass实例。当然,我可以简单地在SomeObject中写一个属性,比如
@property(nonatomic) OwnerClass *ownerReference;
并在初始化SomeObject时赋值并从那里访问它。
我想知道的是是否有任何获得所有者的标准方法。类似于
self.parentViewController
这是苹果获取特定视图控制器父节点的标准方式
在Objective C或iOS SDK中,对象没有一般的、正式的"所有权"概念。所以,不,没有标准的"魔法"方法来做你想做的事情。
将引用从一个视图传递到另一个视图是错误的。如果你想在另一个控制器中调用方法你可以使用协议和委托