心得:delegate的命名要準(zhǔn)確,盡量看名字就知道用法。delegate和通知有的用法有些象,但是前者是單對(duì)單的,后者是單對(duì)多的情況。
注意:在dealloc要把delegate至為nil,還有就是delegate設(shè)置屬性的時(shí)候要用assign,不要用retain。
委托是指給一個(gè)對(duì)象提供機(jī)會(huì)對(duì)另一對(duì)象中的變化做出反應(yīng)或者相應(yīng)另一個(gè)對(duì)象的行為。其基本思想是協(xié)同解決問(wèn)題。
在程序中:一般情況下
1.委托需要做的工作有:
1.1定義協(xié)議與方法
1.2聲明委托變量
1.3設(shè)置代理
1.4通過(guò)委托變量調(diào)用委托方法
2.代理需要做的工作有:
2.1遵循協(xié)議
2.2實(shí)現(xiàn)委托方法
下面講解一下使用委托實(shí)現(xiàn)頁(yè)面?zhèn)髦档慕鉀Q方法:
加入我們有兩個(gè)ViewController 分別為:ViewController和TrendViewController
一 .需求:
我們要實(shí)現(xiàn)這樣一個(gè)功能,當(dāng)點(diǎn)擊ViewController視圖上的一個(gè)按鈕的時(shí)候立刻跳轉(zhuǎn)到TrendViewController,并且把一個(gè)String字符串傳遞過(guò)去。
二.解決方案:
1.在ViewController.h文件的最上邊聲明協(xié)議如下:

2.繼續(xù)在ViewController.h中聲明一個(gè)委托變量

3.進(jìn)入ViewController.m文件在點(diǎn)擊按鈕事件函數(shù)中,設(shè)置代理

4.進(jìn)入TrendViewController.h ,引用ViewController的頭文件,并添加代理協(xié)議如下:

5.實(shí)現(xiàn)代理函數(shù):

運(yùn)行一下 OK.