標籤:
通知/代理/block都可以傳值
(順傳倒傳都可以)
一 順傳 用屬性傳值最簡單明了
二 逆傳 用block更簡潔
三 通知傳值使用情境
1- 很多控制器都需要知道一個事件,應該用通知(傳遞參數的過程就是傳值);
2 - 相隔多層的兩個控制器之間傳值
———————————————————————————————————————————————————————————
8種傳值方式
(很全面,不知道誰整理的,先謝謝.拿過來大家共同學習)
?定義初始化方法在UI中,?般都是用在一個介面去推送另?個界?的時候,總之你要想到既然要?自訂初始化方法,?至少能夠要在當前方法中去建立該對象。所以這種方式不適合回調。
1 ?定義初始化方法,將需要傳遞的內容作為參數,如果需要傳遞多個,則設定多個參數.
2 在合適的地方進?調用?定義初始化?法。
代理傳值:(順傳倒傳都行)
1>擬定?份協議(命名一般是XXXDelegate),協議裡面的?法的參數取決於你要傳遞的內容
2>設定代理人屬性(再次強調,使用assign防?循環參考)
3>在需要調?的地?調?,這?步比較抽象,?如上面所講例?子,我們是需要在button點擊的時候
4>傳值並且取消介面,所以我們的delegate就在這個?面的進?調用
5>讓相應的對象成為代理人,?般都是在建立的時候指定一個代理?
6>遵守協議,並且實現相應的方法,然後在方法中進行邏輯處理
單例傳值:(順傳倒傳都行) 單例的好處就在於只要建立了一次,其餘任何時候訪問到的對象都是同一個,所以很多時候?使用者的?一些資訊都是儲存到單例中,這樣就不需要多次進?行傳值了,只需要再次創 建單例就可以了
屬性傳值:(順傳)
1 需要定義公開屬性
2 需要?個你需要傳值的對象
3 進行屬性賦值
通知傳值:(順傳倒傳都行)
第三個介面的值傳給第?個介面。
1. 在第?個介面建?一個通知中樞, 通過通知中?,註冊一個監聽事件
2. 在第一個界?中,設定接收到通知的事件。
3. 在第?個界?面中的dealloc中, 將通知中樞remove掉
4. 在第三個介面中, 建?一個通知中樞, 通過通知中樞, 發送通知(發送通知的過程就是傳值的過程,將要傳輸的值作為object的值傳給第一個介面
AppDelegate傳值:
在AppDelegate中聲明?一個屬性
通過AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate] 儲存屬性 通過AppDelegate *app = [UIApplication sharedApplication].delegate 使用屬性
block傳值:(順傳倒傳都行) block同樣用於回調
1 為block取別名,並且在參數列表中將需要傳遞的參數寫成形參
2 設定block屬性(注意使用copy)
3 設定?個?法持有當前block
4 在合適的地方進行調?類似於代理
5 在建立該對象的地方進行block?面的調用
NSUserDefault或?件傳值:(順傳倒傳都行)
[[NSUserDefaults standardUserDefaults] objectForKey:]
初始化傳值:(順傳:)
倒傳需要在”ViewDidAppear””ViewWillAppear”中
iOS開發之---傳值大全