MVC設(shè)計模式:1-代理(delegate)協(xié)議

在iOS開發(fā)中宰译,經(jīng)常使用到代理(委托)協(xié)議以及數(shù)據(jù)源協(xié)議,所謂代理(委托)協(xié)議魄懂,通俗來講沿侈,顧名思義就是委托別人辦事,就是當一件事情發(fā)生后市栗,自己不處理缀拭,讓別人來處理。例如填帽,用戶點擊了一個子控件上的按鈕蛛淋,這時可以委托父控件去做一些事情。

1篡腌、什么是代理協(xié)議

所謂代理(委托)協(xié)議褐荷,通俗來講,顧名思義就是委托別人辦事哀蘑,就是當一件事情發(fā)生后诚卸,自己不處理葵第,讓別人來處理绘迁。例如,用戶點擊了一個子控件上的按鈕卒密,這時可以委托父控件去做一些事情缀台。

2、自定義代理的實現(xiàn)方法

在該類.h文件中:設(shè)置類引用@class哮奇、定義代理協(xié)議以及方法@protocol(第一個參數(shù)一般傳自己)膛腐、添加協(xié)議屬性(注意使用weak屬性)睛约;

#import

@classMYView;

@protocolMYViewDelegate

-(void)myView:(MYView*)myView didClickMYButtonShowAlert:(UIButton*)button;

@end

@interfaceMYView:UIView

@property(nonatomic,weak)iddelegate;

@end

在該類的.m文件中,監(jiān)聽協(xié)議定義事件的發(fā)生哲身,當事件發(fā)生時辩涝,通知代理(如控制器)去工作;

-(void)clickButton:(UIButton*)sender{

if([self.delegaterespondsToSelector:@selector(myView:didClickMYButtonShowAlert:)]){

[self.delegatemyView:selfdidClickMYButtonShowAlert:self.button];

}

}

在需要遵守代理協(xié)議的類中勘天,引用頭文件+遵守代理協(xié)議怔揩、設(shè)置代理協(xié)議屬性、實現(xiàn)代理協(xié)議方法

#import "MYView.h"

@interfaceViewController()

-(MYView*)myView{

if(_myView==nil){

_myView=[[MYViewalloc]init];

_myView.frame=CGRectMake(0,500,320,50);

_myView.backgroundColor=[UIColoryellowColor];

_myView.delegate=self;//設(shè)置代理

[self.view addSubview:_myView];

}

return_myView;

}

-(void)myView:(MYView*)myView dicClickMYButtonShowAlert:(UIButton*)button{

NSLog(@"%s",__func__);

}

3脯丝、代理與協(xié)議的區(qū)別

舉一個例子來說明商膊,協(xié)議相當于合同,即甲乙雙方都需要遵守宠进。在甲乙雙方之間晕拆,大家可以簽訂很多份不同的合同,例如:租房合同材蹬,產(chǎn)品銷售合同实幕、轉(zhuǎn)讓合同等等。代理協(xié)議可以認為是協(xié)議的一種堤器,除了代理協(xié)議之外茬缩,常見的還有數(shù)據(jù)源協(xié)議。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吼旧,一起剝皮案震驚了整個濱河市凰锡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圈暗,老刑警劉巖掂为,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異员串,居然都是意外死亡勇哗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門寸齐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欲诺,“玉大人,你說我怎么就攤上這事渺鹦∪欧ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵毅厚,是天一觀的道長塞颁。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么祠锣? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任酷窥,我火速辦了婚禮,結(jié)果婚禮上伴网,老公的妹妹穿的比我還像新娘蓬推。我一直安慰自己,他們只是感情好澡腾,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布拳氢。 她就那樣靜靜地躺著,像睡著了一般蛋铆。 火紅的嫁衣襯著肌膚如雪馋评。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天刺啦,我揣著相機與錄音留特,去河邊找鬼。 笑死玛瘸,一個胖子當著我的面吹牛蜕青,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播糊渊,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼右核,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了渺绒?” 一聲冷哼從身側(cè)響起贺喝,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宗兼,沒想到半個月后躏鱼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡殷绍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年染苛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片主到。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡茶行,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出登钥,到底是詐尸還是另有隱情畔师,我是刑警寧澤,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布怔鳖,位于F島的核電站茉唉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏结执。R本人自食惡果不足惜度陆,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望献幔。 院中可真熱鬧懂傀,春花似錦、人聲如沸蜡感。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郑兴。三九已至犀斋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間情连,已是汗流浹背叽粹。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留却舀,地道東北人虫几。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像挽拔,于是被迫代替她去往敵國和親辆脸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內(nèi)容