iOS協(xié)議傳值封裝總結(jié)

以下是我總結(jié)的協(xié)議傳值封裝的方法柴灯。

問(wèn)題:如果A頁(yè)面跳轉(zhuǎn)B,B需要回傳值至A頁(yè)面费尽,怎么回傳赠群?

當(dāng)然,回傳有很多方式旱幼,諸如協(xié)議查描,通知,Block柏卤,AppDelegate等等冬三。但協(xié)議是最安全,也是最符合面向?qū)ο笳Z(yǔ)言風(fēng)格的一種值回傳方式缘缚。

一般協(xié)議回傳的做法是在B類的.h文件中聲明協(xié)議和協(xié)議方法(1)勾笆,然后聲明協(xié)議屬性(2),在B中的.m中調(diào)用協(xié)議方法(3)桥滨。

再回到A類中遵守協(xié)議(4)窝爪,A頁(yè)面跳轉(zhuǎn)B頁(yè)面時(shí),將協(xié)議對(duì)象設(shè)置成自己self(5)齐媒,最后引入?yún)f(xié)議方法(6)達(dá)到回傳的目的酸舍。

是不是很麻煩?確實(shí)太麻煩了里初,6個(gè)步驟啃勉,如果每次回傳值都這么寫(xiě),累覺(jué)不愛(ài)八痢淮阐!

其實(shí)我們可以這么做叮阅,下面看下如何封裝協(xié)議傳值吧!

1.建立SelectProtocal的.h文件(只需要?jiǎng)?chuàng)建Header File)

如下:

#import

@protocolSelectProtocal

@optional

- (void)didSelectedList:(NSMutableArray*)array type:(NSString*)type;//可傳遞一個(gè)數(shù)組

- (void)didSelectedSingle:(id)item type:(NSString*)type;//可傳遞一個(gè)對(duì)象

@end

2.在B類中:

.h中引入?yún)f(xié)議頭文件

#import"SelectProtocal.h"

聲明協(xié)議屬性

@property(nonatomic,weak)__weak id?delegate;

在.m合適的地方傳遞

if(self.delegate&&[self.delegaterespondsToSelector:@selector(didSelectedList:type:)]){

[self.delegate didSelectedList:array?type:@"Btype"];

[self.navigationControllerpopViewControllerAnimated:YES];//跳轉(zhuǎn)回A類

}

注:

self.delegaterespondsToSelector:@selector(didSelectedList:type:):協(xié)議中的方法泣特,如果是要傳遞一個(gè)對(duì)象浩姥,則用另外一個(gè)方法

array:你要傳遞的數(shù)組

Btype:你要傳值的類型,名字隨便取,用于標(biāo)注,在接收值的地方會(huì)用到状您,此參數(shù)非常重要勒叠,必須是唯一的

3.到A類中

遵守協(xié)議:

<SelectProtocal>

設(shè)置代理:

BViewController *ctrl = [BViewController new];//在A類跳轉(zhuǎn)B類處

ctrl.delegate=self;

4.在A類中實(shí)現(xiàn)協(xié)議方法:

- (void)didSelectedList:(NSMutableArray*)array type:(NSString*)type{

if([typeisEqualToString:@"Btype"]) {

? ? ? ? ?注:這里用到了B類中的標(biāo)識(shí)符Btype,這個(gè)標(biāo)識(shí)符必須唯一膏孟,因?yàn)闀?huì)在其他類中復(fù)用到這個(gè)協(xié)議方法眯分,如果標(biāo)識(shí)符沖突就會(huì)有問(wèn)題。

? ? ? ? 在這里我們就能取到從B類中傳遞過(guò)來(lái)的數(shù)組array柒桑,如果是對(duì)象同理調(diào)用另外一個(gè)協(xié)議方法傳遞弊决。

}

這樣如果你明白了,下次就可省去了聲明協(xié)議方法的時(shí)間了魁淳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末飘诗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子界逛,更是在濱河造成了極大的恐慌昆稿,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件息拜,死亡現(xiàn)場(chǎng)離奇詭異貌嫡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)该溯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)别惦,“玉大人狈茉,你說(shuō)我怎么就攤上這事〉УВ” “怎么了氯庆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)扰付。 經(jīng)常有香客問(wèn)我堤撵,道長(zhǎng),這世上最難降的妖魔是什么羽莺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任实昨,我火速辦了婚禮,結(jié)果婚禮上盐固,老公的妹妹穿的比我還像新娘荒给。我一直安慰自己丈挟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布志电。 她就那樣靜靜地躺著曙咽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挑辆。 梳的紋絲不亂的頭發(fā)上例朱,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音鱼蝉,去河邊找鬼洒嗤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蚀乔,可吹牛的內(nèi)容都是我干的烁竭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吉挣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼派撕!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起睬魂,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤终吼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后氯哮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體际跪,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年喉钢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姆打。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肠虽,死狀恐怖幔戏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情税课,我是刑警寧澤闲延,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站韩玩,受9級(jí)特大地震影響垒玲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜找颓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一合愈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦想暗、人聲如沸妇汗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杨箭。三九已至,卻和暖如春储狭,著一層夾襖步出監(jiān)牢的瞬間互婿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工辽狈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慈参,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓刮萌,卻偏偏與公主長(zhǎng)得像驮配,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子着茸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理壮锻,服務(wù)發(fā)現(xiàn),斷路器涮阔,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,801評(píng)論 1 10
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,139評(píng)論 30 470
  • 二戰(zhàn)中猜绣,納粹德國(guó)有一位十分勇敢善戰(zhàn)的士兵,在戰(zhàn)場(chǎng)上敬特,他無(wú)畏生死掰邢,立下了赫赫戰(zhàn)功。在一次戰(zhàn)役中伟阔,這個(gè)士兵中彈身亡辣之,他...
    海王星1984閱讀 281評(píng)論 0 0
  • 今天一個(gè)老朋友傾訴和新婚老公飲食差異,好難吃皱炉,又要安忍怀估,好辛苦。他們兩個(gè)都是吃素的巴蕹小!忍不住不厚道的笑了怕篷!總以為我...
    安浄閱讀 169評(píng)論 0 0