我理解的代理就是我想做一件事,但是這件事在我的管理范圍外,那我就拜托能管理操作這件事的人來做。
比如,自定義一個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來顯示大圖。