代理傳值(從后一頁(yè)傳到前一頁(yè))

前言:因?yàn)镺bject-C是不支持多繼承的,所以很多時(shí)候都是用Protocol(協(xié)議)來(lái)代替痢法。Protocol(協(xié)議)只能定義公用的一套接口狱窘,但不能提供具體的實(shí)現(xiàn)方法。也就是說(shuō)财搁,它只告訴你要做什么蘸炸,但具體怎么做,它不關(guān)心尖奔。

當(dāng)一個(gè)類要使用某一個(gè)Protocol(協(xié)議)時(shí)搭儒,都必須要遵守協(xié)議。比如有些必要實(shí)現(xiàn)的方法提茁,你沒(méi)有去實(shí)現(xiàn)淹禾,那么編譯器就會(huì)報(bào)警告,來(lái)提醒你沒(méi)有遵守××協(xié)議茴扁。注意稀拐,我這里說(shuō)的是警告,而不是錯(cuò)誤丹弱。對(duì)的德撬,就算你不實(shí)現(xiàn)那些“必要實(shí)現(xiàn)”的方法,程序也是能運(yùn)行的躲胳,只不過(guò)多了些警告蜓洪。

Protocol(協(xié)議)的作用:

1. 定義一套公用的接口(Public)

@required:必須實(shí)現(xiàn)的方法

@optional:可選?實(shí)現(xiàn)的方法(可以全部都不實(shí)現(xiàn))

2. 委托代理(Delegate)傳值:

它本身是一個(gè)設(shè)計(jì)模式,它的意思是委托別人去做某事坯苹。

比如:兩個(gè)類之間的傳值隆檀,類A調(diào)用類B的方法,類B在執(zhí)行過(guò)程中遇到問(wèn)題通知類A粹湃,這時(shí)候我們需要用到代理(Delegate)恐仑。

又比如:控制器(Controller)與控制器(Controller)之間的傳值,從C1跳轉(zhuǎn)到C2为鳄,再?gòu)腃2返回到C1時(shí)需要通知C1更新UI或者是做其它的事情裳仆,這時(shí)候我們就用到了代理(Delegate)傳值。

首先創(chuàng)建兩個(gè)ViewController孤钦,一個(gè)是OneViewController歧斟,另一個(gè)是TwoViewController纯丸,從twoVC中把值傳到oneVC

@protocol Mydelegate<NSObject>

-(void)chuazhi:(NSString *)str;

@end

設(shè)置屬性:

@property (weak,nonatomic)id delegate;

在twoVC的點(diǎn)擊事件中:

if ([_delegate respondsToSelector:@selector(sendValue:)]) { // 如果協(xié)議響應(yīng)了sendValue:方法

[_delegate ?chuazhi:_textField.text]; // 通知執(zhí)行協(xié)議方法

以上代理就設(shè)置完成了静袖,在需要此參數(shù)的ViewController中先遵循代理

OneViewController *oneVC = 【OneViewController alloc】init】觉鼻;

oneVC.delegate = self;

代理方法:

-(void)chuazhi:(NSString *)str

{

—textFiled队橙。text = str坠陈;

}

小結(jié):

當(dāng)你需要定義一套公用的接口,實(shí)現(xiàn)方法可以是不同的時(shí)候捐康,你可以使用Protocol協(xié)議畅姊。

當(dāng)你需要進(jìn)行類與類之間的傳值時(shí),你也可以基于Protocol協(xié)議吹由,使用代理設(shè)計(jì)模式進(jìn)行傳值。

從前一頁(yè)傳到后一頁(yè)就不用多說(shuō)了朱嘴,就是屬性傳值倾鲫,相信大家都會(huì)使用的,喜歡的給個(gè)贊萍嬉,謝謝大家

?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乌昔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子壤追,更是在濱河造成了極大的恐慌磕道,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件行冰,死亡現(xiàn)場(chǎng)離奇詭異溺蕉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)悼做,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)疯特,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人肛走,你說(shuō)我怎么就攤上這事漓雅。” “怎么了朽色?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵邻吞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我葫男,道長(zhǎng)抱冷,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任梢褐,我火速辦了婚禮徘层,結(jié)果婚禮上峻呕,老公的妹妹穿的比我還像新娘。我一直安慰自己趣效,他們只是感情好瘦癌,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著跷敬,像睡著了一般讯私。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上西傀,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天斤寇,我揣著相機(jī)與錄音,去河邊找鬼拥褂。 笑死娘锁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饺鹃。 我是一名探鬼主播莫秆,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼悔详!你這毒婦竟也來(lái)了镊屎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茄螃,失蹤者是張志新(化名)和其女友劉穎缝驳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體归苍,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡用狱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拼弃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片齿拂。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肴敛,靈堂內(nèi)的尸體忽然破棺而出署海,到底是詐尸還是另有隱情,我是刑警寧澤医男,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布砸狞,位于F島的核電站,受9級(jí)特大地震影響镀梭,放射性物質(zhì)發(fā)生泄漏刀森。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一报账、第九天 我趴在偏房一處隱蔽的房頂上張望研底。 院中可真熱鬧埠偿,春花似錦、人聲如沸榜晦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乾胶。三九已至抖剿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間识窿,已是汗流浹背斩郎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喻频,地道東北人缩宜。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像甥温,于是被迫代替她去往敵國(guó)和親锻煌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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

  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,125評(píng)論 29 470
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理窿侈,服務(wù)發(fā)現(xiàn),斷路器秋茫,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛(ài)DE問(wèn)候閱讀 1,712評(píng)論 0 4
  • 一.Java層調(diào)用鏈 1.1 ActivityThread.performLaunchActivity 一般應(yīng)用程...
    王小寶wy閱讀 4,251評(píng)論 2 6
  • 居說(shuō):你的態(tài)度史简,決定了我的高度;你的信任決定了我的責(zé)任肛著! 兒子13歲圆兵,三年前小學(xué)四年級(jí)下半學(xué)期開(kāi)始休學(xué),中間復(fù)學(xué)幾...
    H衡沖閱讀 1,090評(píng)論 1 10