一、傳值分類
頁面?zhèn)髦祷痉譃閮煞N:正向傳值和反向傳值。
二、傳值方式
傳值,最基本的無非就是代理傳值、通知傳值、block傳值等,還有大家經(jīng)常用到的屬性傳值和單例傳值、存儲傳值等。
1、代理傳值
代理傳值,簡單明了、淺顯易懂,實際開發(fā)中也常用。
委托做的事情:
聲明委托變量
定義協(xié)議方法
調(diào)用委托協(xié)議


代理需要做的事情:
執(zhí)行代理協(xié)議
實現(xiàn)委托方法


2、通知傳值
通知的用法很簡單,通知人創(chuàng)建通知并發(fā)送,接收人接受通知就OK了,通知完畢注意移除掉通知,醒目中通知太多并不好(接受的二手項目通知就泛濫成zai了)


最后大家一定不要忘了把通知移除掉,最好在dealloc方法中移除。以免給大家造成不必要的麻煩。只有把代碼寫到最嚴謹才能把bug降到最低。移除通知一般遵循誰創(chuàng)建誰移除。在哪個控制創(chuàng)建就在哪個控制器里移除。

3、block傳值
聲明 block 屬性用于傳值
傳值的時候調(diào)用block 完成傳值


接受方:
傳值一個block 給傳值方,并在block內(nèi)捕獲回調(diào)值信息

4、屬性傳值
屬性傳值是最常用到的,不會用的,基本上可以告別IT圈了。

5、單例傳值
單例顧名思義就是單獨一個實例,相當于一個通用變量在整個工程中可以用作公共資源使用。單例分為系統(tǒng)單例和自定義單例。
6、數(shù)據(jù)持久化傳值
NSUserDefaults是數(shù)據(jù)持久化的一種主要做存儲使用。
