欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS通過(guò)block在兩個(gè)頁(yè)面間傳值的方法

 更新時(shí)間:2016年11月22日 08:50:23   投稿:daisy  
不知道大家有沒(méi)有發(fā)現(xiàn),在實(shí)際開(kāi)發(fā)中使用block的地方特別多,block比delegate和notification有著更簡(jiǎn)潔的優(yōu)勢(shì),下面這篇文章我們來(lái)簡(jiǎn)單了解一下block在兩個(gè)頁(yè)面之間的傳值。有需要的朋友們可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

一、功能需求

在第一個(gè)頁(yè)面中有一個(gè)button和一個(gè)label,label上默認(rèn)顯示“哈哈”,點(diǎn)擊button進(jìn)入第二個(gè)頁(yè)面。在第二個(gè)頁(yè)面有一個(gè)UITextField和一個(gè)button2,點(diǎn)擊button2回到第一個(gè)頁(yè)面,但同時(shí)第一個(gè)頁(yè)面的label上顯示的文字修改為剛剛在UITextField寫(xiě)進(jìn)去的文字。

二、先定義block

在要傳值得那個(gè)頁(yè)面定義含有block參數(shù)的方法,即在第二個(gè)頁(yè)面的.h文件中定義:

重新定義:typedef void (^ReturnTextBlock)(NSString *showText);

//重新定義block類(lèi)名 void返回值類(lèi)型 ReturnTextBlock類(lèi)名(重命名類(lèi)名) NSString *showText參數(shù)

聲明一個(gè)block變量:@property (nonatomic, copy) ReturnTextBlock returnTextBlock;

//注:此處聲明需要用copy屬性,因?yàn)閎lock一開(kāi)始是放在棧上的,只有copy后才會(huì)放到堆上。

block的調(diào)用方法:- (void)returnText:(ReturnTextBlock)block;

在.m文件中實(shí)現(xiàn)

block的調(diào)用方法實(shí)現(xiàn)代碼:- (void)returnText:(ReturnTextBlock)block {

self.returnTextBlock = block;

}

至此,block準(zhǔn)備工作已完成。

三、通過(guò)block在兩個(gè)頁(yè)面間進(jìn)行傳值

在第一個(gè)頁(yè)面,點(diǎn)擊button按鈕實(shí)現(xiàn)跳轉(zhuǎn)到第二個(gè)頁(yè)面并調(diào)用第二個(gè)頁(yè)面的block方法。

-(void)FirstBtnPressed

{

//用blockSelf修飾blockSelf.label 避免block塊內(nèi)部_label被循環(huán)引用

__weak ViewController *blockSelf = self;

ShowViewController *orderVC=[[ShowViewController alloc]init];

//block返回值(跟代理寫(xiě)法挺類(lèi)似的,就是語(yǔ)法不同,代理的話是此處是self.delegate=self;)

[orderVC returnText:^(NSString *showText) {

blockSelf.label.text=showText;

}];

[ self presentViewController:orderVC animated: YES completion:nil];

}

在第二個(gè)頁(yè)面.m文件中實(shí)現(xiàn)button2按鈕的方法

-(void)SecondBtnPressed

{

//只要在變量前面增加__block,在block里面就可以修改該變量的值。當(dāng)然也有其他方法如添加static等。

[self dismissViewControllerAnimated:YES completion:^{

//在使用block前需要對(duì)block指針做判空處理。

//不判空直接使用,一旦指針為空直接產(chǎn)生崩潰。

if (self.returnTextBlock != nil) {

self.returnTextBlock(self.text.text);

NSLog(@"text==%@",self.text.text);

}

}];

}

這樣,就可以實(shí)現(xiàn)我們想要實(shí)現(xiàn)的功能了,很簡(jiǎn)單吧。

小結(jié)

誰(shuí)要傳值誰(shuí)就定義含有block的參數(shù)的方法,在方法內(nèi)部調(diào)用blcok,將要傳遞的參數(shù)給了blcok,blcok跳進(jìn)實(shí)現(xiàn)它要執(zhí)行代碼的'地方'執(zhí)行代碼.傳值完成

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • iOS開(kāi)發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果

    iOS開(kāi)發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果

    這篇文章主要介紹了iOS開(kāi)發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果,實(shí)現(xiàn)方法也很簡(jiǎn)單,需要的朋友可以參考下
    2018-04-04
  • Xcode 8打印log日志的問(wèn)題小結(jié)及解決方法

    Xcode 8打印log日志的問(wèn)題小結(jié)及解決方法

    這篇文章主要介紹了Xcode 8打印log日志的問(wèn)題小結(jié)及解決方法的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • NSMutable?對(duì)象的坑解決分析

    NSMutable?對(duì)象的坑解決分析

    這篇文章主要為大家介紹了NSMutable?對(duì)象的坑解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • iOS圖片拉伸技巧小結(jié)

    iOS圖片拉伸技巧小結(jié)

    這篇文章主要為大家詳細(xì)介紹了iOS圖片拉伸的技巧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • iOS10通知框架UserNotification理解與應(yīng)用

    iOS10通知框架UserNotification理解與應(yīng)用

    在iOS10系統(tǒng)中,通知被整合進(jìn)了UserNotification框架,除了使通知的處理脫離了UIApplication,通知功能的相關(guān)開(kāi)發(fā)更加結(jié)構(gòu)化與模塊化外,還新增開(kāi)放了許多更加靈活的開(kāi)發(fā)接口,現(xiàn)在,開(kāi)發(fā)者可以為通知定義UI末班,添加媒體附件,需要的朋友可以參考下
    2016-09-09
  • iOS中的音頻服務(wù)和音頻AVAudioPlayer音頻播放器使用指南

    iOS中的音頻服務(wù)和音頻AVAudioPlayer音頻播放器使用指南

    這里我們要介紹的是AVAudio ToolBox框架中的AudioServicesPlaySystemSound函數(shù)創(chuàng)建的服務(wù),特別適合用來(lái)制作鈴聲,下面就簡(jiǎn)單整理一下iOS中的音頻服務(wù)和音頻AVAudioPlayer音頻播放器使用指南:
    2016-06-06
  • IOS實(shí)現(xiàn)簡(jiǎn)易版的QQ下拉列表

    IOS實(shí)現(xiàn)簡(jiǎn)易版的QQ下拉列表

    在我們?nèi)粘i_(kāi)發(fā)中tableView是用的非常多的控件, 無(wú)論在新聞應(yīng)用, 視頻, 聊天應(yīng)用中都廣泛使用, 那么今天小編也分享一個(gè)用tableView實(shí)現(xiàn)的類(lèi)似QQ界面的下拉列表.效果很簡(jiǎn)單,有需要的朋友們可以參考借鑒。
    2016-08-08
  • unix 編程進(jìn)程控制詳細(xì)介紹

    unix 編程進(jìn)程控制詳細(xì)介紹

    這篇文章主要介紹了unix 編程進(jìn)程控制詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • IOS中手風(fēng)琴表不能移動(dòng)的解決方法

    IOS中手風(fēng)琴表不能移動(dòng)的解決方法

    本文給大家分享的是IOS開(kāi)發(fā)中遇到的一個(gè)手風(fēng)琴特效無(wú)法正常工作的問(wèn)題的解決方法,經(jīng)過(guò)度娘了很久才找到解決方法,這里推薦給大家,有需要的小伙伴可以參考下。
    2015-05-05
  • iOS 正則表達(dá)式詳解

    iOS 正則表達(dá)式詳解

    在ios中系統(tǒng)自帶的正則表達(dá)式用法大家都很清楚吧,除了正則可以用還有NSScanner這個(gè)類(lèi),下面小編給大家簡(jiǎn)單介紹下
    2016-08-08

最新評(píng)論