我理解的代理就是我想做一件事,但是这件事在我的管理范围外,那我就拜托能管理操作这件事的人来做。
比如,自定义一个cell,在cell上放一张图片,当我点击图片的时候想把图片放大。放大的图片用其他的viewController来显示,这就要navigationController来push。而我自定义的cell没有navigationController,所以这个cell不能push一个viewController来显示大图。但是,放自定义cell的这个TableView所在的viewController有navigationController,cell就可以拜托这个viewController来push一个viewController来显示大图。
具体来说一下:
在自定义的cell上添加UIButton ,给其一个点击事件 bigImage:
点击事件要的效果是放大一张图片,如上所说,cell完成不了,就拜托TableView来执行。重点来了,怎么拜托呢?流程是啥?
首先,列清单:
RepairsServeCellDeleagte------清单名称
- (void)pushBigImageWithUrl:(NSString *)urlStr;-----------要执行的事
来一个delegate中间接洽
然后拜托TableView,TableView表示收到。
在点击事件中,self.delegate执行的 pushBigImageWithUrl:
在TableView中
这就表示 TableView要执行pushBigImageWithUrl: 这个方法,so,现在就在TableView所在的viewController中实现这个方法。
TableView利用自己所在viewController的navigationController顺利push出一个viewController来显示大图。