一、傳值分類 頁面傳值基本分為兩種:正向傳值和反向傳值。 二、傳值方式 傳值,最基本的無非就是代理傳值、通知傳值、block傳值等,還有大家經常用到的屬性傳值和單例傳值、存儲傳值等。 1、代理傳值 代理傳值,簡單明瞭、淺顯易懂,實際開發中也常用。 委托做的事情: 1.1、聲明委托變數 1.2 定義協 ...
一、傳值分類
頁面傳值基本分為兩種:正向傳值和反向傳值。
二、傳值方式
傳值,最基本的無非就是代理傳值、通知傳值、block傳值等,還有大家經常用到的屬性傳值和單例傳值、存儲傳值等。
1、代理傳值
代理傳值,簡單明瞭、淺顯易懂,實際開發中也常用。
委托做的事情:
1.1、聲明委托變數
1.2 定義協議方法
1.3 調用委托協議
代理需要做的事情:
1.1 執行代理協議
1.2 實現委托方法
2、通知傳值
通知的用法很簡單,通知人創建通知併發送,接收人接受通知就OK了,通知完畢註意移除掉通知,醒目中通知太多並不好(接受的二手項目通知就泛濫成zai了)
最後大家一定不要忘了把通知移除掉,最好在dealloc方法中移除。以免給大家造成不必要的麻煩。只有把代碼寫到最嚴謹才能把bug降到最低。移除通知一般遵循誰創建誰移除。在哪個控制創建就在哪個控制器里移除。
3、block傳值
3.1 聲明 block 屬性用於傳值
3.2 傳值的時候調用block 完成傳值
接受方:
傳值一個block 給傳值方,併在block內捕獲回調值信息
4、屬性傳值
屬性傳值是最常用到的,不會用的,基本上可以告別IT圈了。
5、單例傳值
單例顧名思義就是單獨一個實例,相當於一個通用變數在整個工程中可以用作公共資源使用。單例分為系統單例和自定義單例。
6、數據持久化傳值
NSUserDefaults是數據持久化的一種主要做存儲使用。
結語:
文中有什麼不妥之處,歡迎指正交流。ps_最近項目不太忙,把常用的知識點總結下,以便以後查閱鞏固。