ios開發經常會遇到協議的使用,在不同的視圖間、對象傳值或穿事件,下面主要記錄視圖對象怎麼設置代理。
首先區分一下協議和代理的概念:IOS開發之協議和代理
http://mobile.51cto.com/hot-404773.htm
使用協議的一般步驟:iOS 之美:iOS Delegate 使用五步曲
http://leopard168.blog.163.com/blog/static/168471844201307112149221/
通常,一個delegate的使用過程,需要經過五步:
1. 創建一個 delegate;
2. 委託者聲明一個delegate;
3. 委託者調用delegate內的方法(method);
4. 被委託者設置delegate,以便被委託者調用;
5. 被委託者實現Delegate 所定義的方法。
第1、2、3步可能問題都不大,第4步代理的設置有時候會因爲視圖的複雜關係而不能快速地設置正確,如果你使用可視化的故事板設計視圖,這個問題就容易解決了。
解決方法:使用storyboarID
在storyboard(故事板)上每個viewcontroller(視圖控制器)都有storyboardID這個屬性
ctroller = [[UIStoryboard storyboardWithName:@"storyboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"ctrollerName"];
delegate = ctroller;