傳值方式 1 初始化傳值:(順傳) 自定義初始化方法在 UI中,一般在一個界面推送另一個界面的時候,因此要是想用想到既然要用自定義初始化方法,至少要在該方法中去創建該對象.所以這種方式不適合回調. 自定義初始化方法,將需要傳遞的內容作為參數,如需要傳遞多個,則設置多個參數. 在合適的地方進行調用自定 ...
傳值方式
1 初始化傳值:(順傳)
自定義初始化方法在 UI中,一般在一個界面推送另一個界面的時候,因此要是想用想到既然要用自定義初始化方法,至少要在該方法中去創建該對象.所以這種方式不適合回調.
- 自定義初始化方法,將需要傳遞的內容作為參數,如需要傳遞多個,則設置多個參數.
- 在合適的地方進行調用自定義初始化方法.
2 屬性傳值:(順傳)
- 定義公開屬性
- 需要一個你傳值的的對象
- 屬性賦值
3 單例傳值:(順傳和逆傳都行)
單例的好處就在於只要創建一次,其餘任何時候使用的時候使用的都是同一個,所以很多時候用戶的一些信息存儲到單例中,這樣就不需要進行多次傳值了,只需要再次創建單例就行了.
4 AppDelegate傳值:
- 在AppDelegate中聲明一個屬性
- 通過AppDelegate *app = [[UIApplocation sharedApplication] delegate];保存屬性
- 通過AppDelegate *app = [UIApplocation sharedApplication].delegate;s使用屬性.
5 通知傳值:(順傳和逆傳)
- 創建通知發送者
- 創建通知的接收者
- 銷毀通知
6 代理傳值:(順傳和逆傳) (控制器由 AàB)
B.h 中:制定協議 設置代理屬性
B.m 中:在需要代理做事情時讓代理執行協議和方法.(註:先判斷再執行防止崩潰)
A.m 中:設置代理 遵守協議 實現代理方法
7 block 傳值:(順傳和逆傳)(在 B 中聲明和調用 在 A 中實現)
- 為 block 取別名,併在參數列表中將需要傳遞的參數寫為形參.
- 設置 block 屬性(註:用 weak)
- 設置一個方法持有當前block
- 在合適的地方調用
- 在創建該對象的的地方進行 block 調用
8 NSUserDefault或文件傳值:(順傳和逆傳)
[[NSUserDefault standardUserDefault] objectForKey:];
倒傳需要在 ViewWillAppear 和 ViewDidAppear.