block的屬性使用指導(dǎo)(不斷更新中。旷祸。耕拷。)

項(xiàng)目中需求
每摁換行鍵一次添加一個(gè)標(biāo)簽

然后自己剛好在網(wǎng)上找到了一個(gè)別人寫好的類TLTagsControl

問(wèn)題出現(xiàn)了:怎么取出標(biāo)簽數(shù)組?托享?

自己覺(jué)得最簡(jiǎn)單的方法就是在它的基礎(chǔ)上添加一個(gè)block屬性來(lái)傳值骚烧,結(jié)果真的傳值成功啦

現(xiàn)在分享下自己使用block屬性傳值的感慨,真的是越用越覺(jué)得block神奇好用闰围,但是自己有很多關(guān)于block的知識(shí)并不是很能說(shuō)出一二三赃绊,只知道怎么使用,以后了解更多再補(bǔ)充O哿瘛1滩椤!

  1. 首先在TLTagsControl.h中聲明block屬性

    /**
     * 用來(lái)監(jiān)聽(tīng)最終的標(biāo)簽數(shù)組
     */
      @property (nonatomic, copy) void (^finalTags)(NSArray *array);
    
  2. TLTagsControl.mreloadTagSubviews方法最后面執(zhí)行block監(jiān)聽(tīng)

      NSArray * finalTagArray = (NSArray *)_tags;
         if (self.finalTags) {
           self.finalTags(finalTagArray);
      }
    
  3. 在自己建的DZY_EditMarkViewController.m中初始化繼承TLTagsControl_defaultEditingTagControl后監(jiān)聽(tīng)block并接受tag標(biāo)簽數(shù)組

     @property (nonatomic,strong) TLTagsControl  * defaultEditingTagControl; //聲明一個(gè)屬性
    
       NSMutableArray * tags = [NSMutableArray array];
        _defaultEditingTagControl.tags = [tags mutableCopy];
        _defaultEditingTagControl.tagPlaceholder = @"343443";//不知道為什么不起作用校仑,有時(shí)間研究
        if (self.fromPublicStatusVCTags.count > 0) {
        _defaultEditingTagControl = [[TLTagsControl alloc]initWithFrame:CGRectMake(5, 5, DZY_SCREENWIDTH-10, 36) andTags:_fromPublicStatusVCTags withTagsControlMode:TLTagsControlModeEdit];
        }else{
        _defaultEditingTagControl = [[TLTagsControl alloc]initWithFrame:CGRectMake(5, 5, DZY_SCREENWIDTH-10, 36) andTags:_allTags withTagsControlMode:TLTagsControlModeEdit];
        }
        _defaultEditingTagControl.showsHorizontalScrollIndicator = NO;//不顯示滾動(dòng)條
        [_defaultEditingTagControl reloadTagSubviews];
        self.allTags =  _defaultEditingTagControl.tags;
        [_defaultEditingTagControl setTapDelegate:self];
        [self.view addSubview:[self defaultEditingTagControl]];
    
         __weak typeof(self) vc = self;
         _defaultEditingTagControl.finalTags = ^(NSArray *array){
         vc.allTags = (NSMutableArray *)array;
        
     };
    
  4. 到此就可以在DZY_EditMarkViewController.m中使用標(biāo)簽數(shù)組啦C捶颉!肤视!

使用總結(jié):

block屬性傳值時(shí)档痪,誰(shuí)傳值,誰(shuí)聲明block屬性邢滑,然后在.m文件中設(shè)置block屬性要傳的值腐螟,最后在要接收值的地方愿汰,調(diào)用“誰(shuí)”的block屬性,就可以把值傳過(guò)去啦

2015-9-7 第一次分享關(guān)于block的使用

Block使用經(jīng)驗(yàn)(二)

項(xiàng)目需求:(消息列表界面)MessageViewController跳轉(zhuǎn)到(聊天界面)DZY_ChatViewController乐纸,返回MessageViewController列表時(shí)消息未讀的提示消失衬廷,界面類似QQ消息界面

附效果圖

未讀數(shù)提示“23”

點(diǎn)擊未讀數(shù)為“23”的cell
返回后未讀數(shù)消失

首先

DZY_ChatViewController.h中聲明haveReadPersonLetterPleaseRefresh的block

   @property(nonatomic,copy)void(^haveReadPersonLetterPleaseRefresh)(BOOL success);

在兩個(gè)界面有關(guān)聯(lián)的地方實(shí)現(xiàn)haveReadPersonLetterPleaseRefresh這個(gè)block屬性方法

[1]---在DZY_ChatViewController.m中的加載數(shù)據(jù)方法成功后去調(diào)用

-(void)loadListDataFromActive{

   [RequestNetWork getWithURL:url params:nil isHtml:NO success:^(id json) {
   //進(jìn)入私信詳情界面后,通知列表界面刷新(因?yàn)槿∠崾臼窃谠摻缑嬉贿M(jìn)入就置0)
   //請(qǐng)求成功再刷新
    if (self.haveReadPersonLetterPleaseRefresh) {
        self.haveReadPersonLetterPleaseRefresh(YES);
    }
} failure:^(NSError *error) {
    NSLog(@"----歷史消息-----%@",error);
}];
}

附:
自己剛開(kāi)始覺(jué)得一進(jìn)入DZY_ChatViewController就可以block調(diào)用汽绢,結(jié)果有時(shí)候可以實(shí)現(xiàn)吗跋,有時(shí)候又不能實(shí)現(xiàn),可每次打斷點(diǎn)都可以實(shí)現(xiàn)宁昭,同事提醒下跌宛,恍然大悟,網(wǎng)絡(luò)請(qǐng)求成功才去調(diào)用最符合實(shí)際积仗,所以最終代碼如上

[2]---在MessageViewController.m中要跳轉(zhuǎn)的地方調(diào)用block疆拘,實(shí)現(xiàn)關(guān)聯(lián)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//取消選中狀態(tài)
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    DZY_ChatViewController *chatView=[[DZY_ChatViewController alloc]init];
    chatView.nickName=personLetterNew.authorNickname;
    //私信消息已讀會(huì)通知刷新
    __weak typeof(self) vc = self;
    chatView.haveReadPersonLetterPleaseRefresh = ^(BOOL success){
            NSLog(@"私信消息已讀會(huì)通知刷新");
            if (success == YES) {
                [vc.tableView headerBeginRefreshing];
         }
    [self.navigationController pushViewController:chatView animated:YES];
}

至此,block實(shí)現(xiàn)界面通信就結(jié)束啦寂曹,還是之前說(shuō)的哎迄,block屬性的傳值,通信隆圆,都只需要三步(1-聲明漱挚,2-聲明block的.m文件中實(shí)現(xiàn)block,3-與之有關(guān)的.m文件也實(shí)現(xiàn)block)

2015-09-14晚渺氧,第二次分享關(guān)于block的使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棱烂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阶女,更是在濱河造成了極大的恐慌颊糜,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秃踩,死亡現(xiàn)場(chǎng)離奇詭異衬鱼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)憔杨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門鸟赫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人消别,你說(shuō)我怎么就攤上這事抛蚤。” “怎么了寻狂?”我有些...
    開(kāi)封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵岁经,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蛇券,道長(zhǎng)缀壤,這世上最難降的妖魔是什么樊拓? 我笑而不...
    開(kāi)封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任围小,我火速辦了婚禮偷拔,結(jié)果婚禮上愉舔,老公的妹妹穿的比我還像新娘笨使。我一直安慰自己,他們只是感情好眯亦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布腰素。 她就那樣靜靜地躺著芦倒,像睡著了一般蛤织。 火紅的嫁衣襯著肌膚如雪赴叹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天瞳筏,我揣著相機(jī)與錄音稚瘾,去河邊找鬼牡昆。 笑死姚炕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丢烘。 我是一名探鬼主播柱宦,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼播瞳!你這毒婦竟也來(lái)了掸刊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赢乓,失蹤者是張志新(化名)和其女友劉穎忧侧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牌芋,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚓炬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了躺屁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肯夏。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖犀暑,靈堂內(nèi)的尸體忽然破棺而出驯击,到底是詐尸還是另有隱情,我是刑警寧澤耐亏,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布徊都,位于F島的核電站,受9級(jí)特大地震影響广辰,放射性物質(zhì)發(fā)生泄漏碟贾。R本人自食惡果不足惜币喧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袱耽。 院中可真熱鬧杀餐,春花似錦、人聲如沸朱巨。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)冀续。三九已至琼讽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洪唐,已是汗流浹背钻蹬。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凭需,地道東北人问欠。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像粒蜈,于是被迫代替她去往敵國(guó)和親顺献。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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

  • Block使用場(chǎng)景枯怖,可以在兩個(gè)界面的傳值注整,也可以對(duì)代碼封裝作為參數(shù)的傳遞等。用過(guò)GCD就知道Block的精妙之處度硝。...
    Coder_JMicheal閱讀 724評(píng)論 2 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理肿轨,服務(wù)發(fā)現(xiàn),斷路器蕊程,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,139評(píng)論 30 470
  • iOS代碼塊Block 概述 代碼塊Block是蘋果在iOS4開(kāi)始引入的對(duì)C語(yǔ)言的擴(kuò)展,用來(lái)實(shí)現(xiàn)匿名函數(shù)的特性,B...
    smile刺客閱讀 2,347評(píng)論 2 26
  • 蘋果官方文檔翻譯 《Objective-C語(yǔ)言編程》(Programming with Objective-C) ...
    fever105閱讀 25,668評(píng)論 19 130