iOS中Block+單利解決不相關(guān)聯(lián)的界面通訊問題

使用場(chǎng)景

A視圖和B視圖沒有直接跳轉(zhuǎn)關(guān)系灾部,當(dāng)A視圖數(shù)據(jù)發(fā)生改變需要觸發(fā)B視圖的刷新事件,當(dāng)A視圖向B視圖傳遞一些信息冤灾,或者修改B視圖的一些界面蝎亚,或者一些界面?zhèn)髦祮栴}方篮,此類問題大部分人都是采用通知去解決,block+單利便可以解決這些問題,同事block+單利還可以去替代代理,通知去處理一些他們無法完成事是鬼。

使用步驟

1.創(chuàng)建一個(gè)單利對(duì)象(單利本身所具備的屬性,以及他的作用也是非常強(qiáng)大的紫新,單利的使用就不過多贅述)

#import "RefreshStatus.h"

@implementation RefreshStatus

static RefreshStatus *manager = nil;

+(RefreshStatus *)SimpleInterest

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

manager = [[self alloc]init];

});

return manager;

}

@end


2.把block作為單利對(duì)象中的一個(gè)屬性(一般一個(gè)功能來寫一個(gè)block)

#import@interface RefreshStatus : NSObject

/**

單利對(duì)象

*/

+(RefreshStatus *)SimpleInterest;

/**

資產(chǎn)頁(yè)刷新的block

*/

@property(nonatomic,copy) void(^assetRefreshStatue)(id *status);

-(void)RefreshAssetVC:(id *status);//這個(gè)方法只是為了方便調(diào)用

@end

-(void)RefreshAssetVC:(id *status)

{

if (self.assetRefreshStatue) {

self.assetRefreshStatue(status);

}

}

到此為止這僅僅只是完成對(duì)象的創(chuàng)建均蜜,使用的時(shí)候也很簡(jiǎn)單

3.使用(拿刷新舉例)在需要觸發(fā)刷新的地方來調(diào)用這個(gè)block或者直接調(diào)用這個(gè)寫好的方法

[[RefreshStatus SimpleInterest] RefreshAssetVC:(@"這里傳你想要傳遞的值,可以為nil")]

4.監(jiān)聽(在你需要刷新的地方監(jiān)聽)

[RefreshStatus SimpleInterest].assetRefreshStatue=^(id *status){

//這里做刷新操作芒率,或者做一些事件的處理

NSLog(@"%@通知資產(chǎn)頁(yè)刷新",status);

};


注意

這種方式適用于已存在的兩個(gè)對(duì)象之間的通訊囤耳,如果想用于還未創(chuàng)建的對(duì)象的通訊,需要做一些方法的處理偶芍。


拓展

block+單利用起來比較方便充择,如果對(duì)block和單利比較熟悉的情況下,結(jié)合起來可以處理很多通知和代理無法實(shí)現(xiàn)的功能匪蟀,同時(shí)還可以用于一些登錄流程的邏輯的處理椎麦,例如把一個(gè)登錄的block作為單利的屬性,在需要登錄的地方去監(jiān)聽萄窜,登錄完成就去實(shí)現(xiàn)這個(gè)block铃剔,這樣其他地方的監(jiān)聽就會(huì)接收到,同時(shí)他還可以存儲(chǔ)一些登錄狀態(tài)或者一些常用的數(shù)據(jù)等等查刻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凤类,隨后出現(xiàn)的幾起案子穗泵,更是在濱河造成了極大的恐慌,老刑警劉巖谜疤,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佃延,死亡現(xiàn)場(chǎng)離奇詭異现诀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)履肃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門仔沿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尺棋,你說我怎么就攤上這事封锉。” “怎么了膘螟?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵成福,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我荆残,道長(zhǎng)奴艾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任内斯,我火速辦了婚禮蕴潦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俘闯。我一直安慰自己潭苞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布备徐。 她就那樣靜靜地躺著萄传,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜜猾。 梳的紋絲不亂的頭發(fā)上秀菱,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音蹭睡,去河邊找鬼衍菱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肩豁,可吹牛的內(nèi)容都是我干的脊串。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼清钥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼琼锋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祟昭,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤缕坎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后篡悟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谜叹,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匾寝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荷腊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艳悔。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖女仰,靈堂內(nèi)的尸體忽然破棺而出猜年,到底是詐尸還是另有隱情,我是刑警寧澤董栽,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布码倦,位于F島的核電站,受9級(jí)特大地震影響锭碳,放射性物質(zhì)發(fā)生泄漏袁稽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一擒抛、第九天 我趴在偏房一處隱蔽的房頂上張望推汽。 院中可真熱鬧,春花似錦歧沪、人聲如沸歹撒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)暖夭。三九已至,卻和暖如春撵孤,著一層夾襖步出監(jiān)牢的瞬間迈着,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工邪码, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裕菠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓闭专,卻偏偏與公主長(zhǎng)得像奴潘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子影钉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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