iOS開發(fā):使用Block在兩個(gè)界面之間傳值(Block高級用法:Block傳值)

使用Block的地方很多稳强,其中傳值只是其中的一小部分,下面介紹Block在兩個(gè)界面之間的傳值:

先說一下思想:

首先和悦,創(chuàng)建兩個(gè)視圖控制器退疫,在第一個(gè)視圖控制器中創(chuàng)建一個(gè)UILabel和一個(gè)UIButton,其中UILabel是為了顯示第二個(gè)視圖控制器傳過來的字符串鸽素,UIButton是為了push到第二個(gè)界面褒繁。

第二個(gè)界面的只有一個(gè)UITextField,是為了輸入文字馍忽,當(dāng)輸入文字棒坏,并且返回第一個(gè)界面的時(shí)候燕差,當(dāng)?shù)诙€(gè)視圖將要消失的時(shí)候,就將第二個(gè)界面上TextFiled中的文字傳給第一個(gè)界面坝冕,并且顯示在UILabel上徒探。

其實(shí)核心代碼就幾行代碼:

下面是主要代碼:(因?yàn)槲沂怯胹toryBoard創(chuàng)建的工程,所以上面的屬性和相應(yīng)的方法喂窟,是使用系統(tǒng)生成的outlet)

一刹帕、在第二個(gè)視圖控制器的.h文件中定義聲明Block屬性

typedefvoid(^ReturnTextBlock)(NSString*showText);@interfaceTextFieldViewController:UIViewController@property(nonatomic,copy) ReturnTextBlock returnTextBlock;- (void)returnText:(ReturnTextBlock)block;@end

第一行代碼是為要聲明的Block重新定義了一個(gè)名字

ReturnTextBlock

這樣,下面在使用的時(shí)候就會(huì)很方便谎替。

第三行是定義的一個(gè)Block屬性

第四行是一個(gè)在第一個(gè)界面?zhèn)鬟M(jìn)來一個(gè)Block語句塊的函數(shù)偷溺,不用也可以,不過加上會(huì)減少代碼的書寫量

二钱贯、實(shí)現(xiàn)第二個(gè)視圖控制器的方法

- (void)returnText:(ReturnTextBlock)block {self.returnTextBlock = block;}- (void)viewWillDisappear:(BOOL)animated {if(self.returnTextBlock !=nil) {self.returnTextBlock(self.inputTF.text);}}

其中inputTF是視圖中的UITextField挫掏。

第一個(gè)方法就是定義的那個(gè)方法,把傳進(jìn)來的Block語句塊保存到本類的實(shí)例變量returnTextBlock(.h中定義的屬性)中秩命,然后尋找一個(gè)時(shí)機(jī)調(diào)用尉共,而這個(gè)時(shí)機(jī)就是上面說到的,當(dāng)視圖將要消失的時(shí)候弃锐,需要重寫:

-(void)viewWillDisappear:(BOOL)animated;

方法袄友。

三、在第一個(gè)視圖中獲得第二個(gè)視圖控制器霹菊,并且用第二個(gè)視圖控制器來調(diào)用定義的屬性

如下方法中書寫:

- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender{// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.TextFieldViewController *tfVC = segue.destinationViewController;[tfVC returnText:^(NSString*showText) {self.showLabel.text = showText;}];}

可以看到代碼中的注釋剧蚣,系統(tǒng)告訴我們可以用[segue destinationViewController]來獲得新的視圖控制器,也就是我們說的第二個(gè)視圖控制器旋廷。

這時(shí)候上面(第一步中)定義的那個(gè)方法起作用了鸠按,如果你寫一個(gè)[tfVC returnText按回車,系統(tǒng)會(huì)自動(dòng)提示出來一個(gè):

tfVC returnText:<#^(NSString *showText)block#>

的東西,我們只要在焦點(diǎn)上回車饶碘,就可以快速創(chuàng)建一個(gè)代碼塊了目尖,大家可以試試。這在寫代碼的時(shí)候是非常方便的扎运。

附件中是完整的工程代碼瑟曲,大家可以運(yùn)行看看效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市豪治,隨后出現(xiàn)的幾起案子洞拨,更是在濱河造成了極大的恐慌,老刑警劉巖鬼吵,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扣甲,死亡現(xiàn)場離奇詭異,居然都是意外死亡齿椅,警方通過查閱死者的電腦和手機(jī)琉挖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涣脚,“玉大人示辈,你說我怎么就攤上這事∏彩矗” “怎么了矾麻?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芭梯。 經(jīng)常有香客問我险耀,道長,這世上最難降的妖魔是什么玖喘? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任甩牺,我火速辦了婚禮,結(jié)果婚禮上累奈,老公的妹妹穿的比我還像新娘贬派。我一直安慰自己,他們只是感情好澎媒,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布搞乏。 她就那樣靜靜地躺著,像睡著了一般戒努。 火紅的嫁衣襯著肌膚如雪请敦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天储玫,我揣著相機(jī)與錄音冬三,去河邊找鬼。 笑死缘缚,一個(gè)胖子當(dāng)著我的面吹牛勾笆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桥滨,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼窝爪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了齐媒?” 一聲冷哼從身側(cè)響起蒲每,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喻括,沒想到半個(gè)月后邀杏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年望蜡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唤崭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脖律,死狀恐怖谢肾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情小泉,我是刑警寧澤芦疏,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站微姊,受9級特大地震影響酸茴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兢交,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一薪捍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧魁淳,春花似錦飘诗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至息拜,卻和暖如春溉潭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背少欺。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工喳瓣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赞别。 一個(gè)月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓畏陕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仿滔。 傳聞我的和親對象是個(gè)殘疾皇子惠毁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

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