Delegate代理

我理解的代理就是我想做一件事,但是这件事在我的管理范围外,那我就拜托能管理操作这件事的人来做。

比如,自定义一个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中

划红线的地方写在cellForRowAtIndexPath方法里

这就表示 TableView要执行pushBigImageWithUrl: 这个方法,so,现在就在TableView所在的viewController中实现这个方法。

MWPhotoBrowser继承自UIViewController

TableView利用自己所在viewController的navigationController顺利push出一个viewController来显示大图。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 一、UITableView的delegate实现:...
    石虎132阅读 4,151评论 1 8
  • 估计很多人看到标题就会开炸。 钻石等于爱情。多少年已经根深蒂固的观念。钻石是至今为止人类所探知最坚硬的天然物质,常...
    Doctor徐阅读 939评论 3 0
  • 我们生活的这个世界越来越像是一个彻底的大市场,而我们每个人都生活在价值交换和价值集群之中,这其实是每一个人的本能。...
    俞燕文阅读 207评论 0 0
  • 小巷/又弯又长/没有门,没有窗/我拿着一把旧钥匙/敲着厚厚的墙 ——顾城 记得高中时,总喜欢去一个隐藏在小巷深...
    阮君棂阅读 670评论 0 4