iOS開發(fā)——Block在實際項目中的傳值

在iOS開發(fā)中嘹锁,我們會在實際過程中大量使用Block右蒲,其中Block有個很基礎(chǔ)的功能阀湿,就是完成兩個頁面間的傳值。而今天瑰妄,我就用實際的項目中的頁面陷嘴,來展示如何完成兩個頁面間的傳值。

首先我們先來看间坐,這個界面中灾挨,我們需要傳遞什么值。我們需要在點擊選擇房間之后竹宋,跳轉(zhuǎn)到房間列表界面劳澄,在UITableViewController中,選擇房間名蜈七,之后按下確定按鈕后秒拔,跳轉(zhuǎn)回第一個界面,使我們選擇的房間名飒硅,顯示在房間選項處砂缩。

房間列表界面

因為事件其實是發(fā)生在第二個界面,按下確定按鈕時三娩,所以我們在第二個界面庵芭,聲明并定義Block。

typedef void(^SelectedRoomBlock)(NSString *roomName);

@interface SelectRoomTypeVC : UIViewController

@property (nonatomic, copy) SelectedRoomBlock selectedRoomBlock;

- (void)returnRoomName:(SelectedRoomBlock)block;

  • 我們先用typedef聲明一個叫SelectedRoomBlockBlock雀监,它需要有一個類型為NSString的參數(shù)双吆。

  • 之后我們聲明一個類型為SelectedRoomBlock的變量selectedRoomBlok

  • 我們定義一個函數(shù)会前,需要傳入一個Block類型的參數(shù)好乐,這個方法不用也可以,目的是為了減少代碼量回官,使我們使用Block的過程更加清晰曹宴。

接下來我們就要開始來使用Block傳值了,我們先來實現(xiàn)剛剛定義的函數(shù)方法歉提。

- (void)returnRoomName:(SelectedRoomBlock)block{
    self.selectedRoomBlock = block;
}

很清晰的實現(xiàn)笛坦,就是為了再后來調(diào)用時区转,出現(xiàn)一個Block代碼塊,更加清晰版扩。

把傳進來的Block語句塊保存到本類的實例變量selectedRoomBlock(.h中定義的屬性)中废离,然后尋找一個時機調(diào)用,而這個時機就是上面說到的礁芦,當(dāng)確認按鈕按下時蜻韭。

之后聲明一個字符串類型的變量,保存我們剛剛存儲的房間的值柿扣。

@property (nonatomic, copy) NSString *selectedRoomStr;

而獲取值在UITableView的代理方法中實現(xiàn)肖方,這里就不贅述了。

因為我們按下確定按鈕開始傳值未状,所以我們在ButtonAction中來實現(xiàn)俯画。

-  (void)ButtonAction:(UIBarButtonItem *)sender{
    switch (sender.tag) {
        case 107:{
            if (self.selectedRoomBlock != nil) {
                self.selectedRoomBlock(self.selectedRoom);
            }
            [self.navigationController popViewControllerAnimated:YES];
            break;
        }
        
        default:
            break;
    }
}

第一個視圖界面

我們回到第一個視圖界面,在Push出第二個界面時生成第二個界面的地方司草,調(diào)用我們的Block屬性艰垂。

 [self.navigationController pushViewController:_selectRoomVC animated:YES];
    
 [_selectRoomVC returnRoomName:^(NSString *roomName) {
         _addDeviceCellInfo.roomName = roomName;
   }];
            

這里我們就可以用任意的變量,來匹配Block傳遞進來的roomName參數(shù)埋虹。

至此猜憎,就已經(jīng)完成了Block在兩個頁面間的傳值,效果如上圖,是不是其實也特別簡單呢搔课。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胰柑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辣辫,更是在濱河造成了極大的恐慌旦事,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件急灭,死亡現(xiàn)場離奇詭異,居然都是意外死亡谷遂,警方通過查閱死者的電腦和手機葬馋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肾扰,“玉大人畴嘶,你說我怎么就攤上這事〖恚” “怎么了窗悯?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偷拔。 經(jīng)常有香客問我蒋院,道長亏钩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任欺旧,我火速辦了婚禮姑丑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辞友。我一直安慰自己栅哀,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布称龙。 她就那樣靜靜地躺著留拾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲫尊。 梳的紋絲不亂的頭發(fā)上间驮,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音马昨,去河邊找鬼竞帽。 笑死,一個胖子當(dāng)著我的面吹牛鸿捧,可吹牛的內(nèi)容都是我干的屹篓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼匙奴,長吁一口氣:“原來是場噩夢啊……” “哼堆巧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泼菌,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤谍肤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后哗伯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荒揣,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年焊刹,在試婚紗的時候發(fā)現(xiàn)自己被綠了系任。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虐块,死狀恐怖俩滥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贺奠,我是刑警寧澤霜旧,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站儡率,受9級特大地震影響挂据,放射性物質(zhì)發(fā)生泄漏以清。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一棱貌、第九天 我趴在偏房一處隱蔽的房頂上張望玖媚。 院中可真熱鬧,春花似錦婚脱、人聲如沸今魔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽错森。三九已至,卻和暖如春篮洁,著一層夾襖步出監(jiān)牢的瞬間涩维,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工袁波, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓦阐,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓篷牌,卻偏偏與公主長得像睡蟋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枷颊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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

  • 在我們需要在另一個頁面中獲取到這個頁面?zhèn)€的數(shù)據(jù)的時候,我們就需要將這個頁面通過某種形式傳遞給另一個頁面题造。在這里我們...
    Joker_King閱讀 5,499評論 5 16
  • 前言 ios4.0系統(tǒng)已開始支持block傍菇,在編程過程中,block被Obj-C看成是對象晌梨,它封裝了一段代碼桥嗤,這段...
    GitHubPorter閱讀 804評論 2 4
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,751評論 1 92
  • 還記得上一次我走的時候 天空是深深的藍色仔蝌,藍得發(fā)黑 現(xiàn)在天亮了,誕生了明達 就是重生的我 晉陽是李世民最愛的女兒 ...
    虛谷沉香閱讀 198評論 0 0
  • 小雨 淅淅瀝瀝 散落在整座山上 不時 白霧彌漫 籠罩了山頂?shù)囊磺?看不到遠方 只能望見 這已被風(fēng)雨侵蝕的鐵柵欄
    普羅旺斯320閱讀 154評論 0 0