我有一个容器视图控制器,说ContainerViewController和另一个UIViewController(PhotoViewcController),我将其添加为ContainerViewController中的childviewcontroller。这条消息从ContainerViewController转发到PhotoViewcController。但是,如何在父子视图控制器中使用双向关系?这样消息就从PhotoViewcController传递到ContainerViewController。
答案 0 :(得分:3)
在像这样的子类中创建一个属性
@property (assign) id pDelegate;
并合成它,当你转到子视图控制器时,在推送/存在之前将委托设置为self
childController.pDelegate = self;
现在,当您要发送消息时,请执行此操作
if([self.pDelegate respndsToSelector:@selector(popedBackFromChild:)])
{
[self.pDelegate popedBackFromChild:<some object>];
}
告诉我你是否需要进一步解释
答案 1 :(得分:1)
有两种方法可以做到这一点。在子类中为它定义协议并在父类中定义它,或者您可以发布和通知并将必要的信息作为字典传递。正如@The Saad告诉你的那样,这是定义协议的最佳方式,但通知更容易管理。 附:父类是您将更新信息的类,Child类将提供它。