UIViewController的双向关系



我有一个容器视图控制器说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告诉您的那样,这是定义协议的最佳方式,但通知更易于管理。附言父类是您将在其中更新信息的类,子类将提供它。

最新更新