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