iOS中container view的簡單使用

簡述

? ? ? ?在開發(fā)一個復(fù)雜頁面時,我們總是希望能夠降低頁面中控件的耦合度或者讓單獨的控制器去管理某個稍微復(fù)雜些的控件,即使用一個類似容器的控制器來管理頁面中控件的擴(kuò)及。在最近的storyboard開發(fā)中,使用到了一個新的方便的控件——container view,寫了一些簡單的demo,來測試一下這個控件并總結(jié)一下簡單的用法。

container view

storyboard中關(guān)于container view的描述
使用兩個container view在一個頁面上加載兩個控制器的view

大致的表述是在這個container view會建立一個和子控制器連接的segue,我們可以在父控制器中放入container view控件,每一個container view會自動創(chuàng)建一個關(guān)聯(lián)的controller。controller中view的尺寸會隨著container view的尺寸變化。

tips:控制器view的背景色優(yōu)先級是大于container view的背景色。

父控制器中獲取子控制器

? ? ?界面創(chuàng)建完畢以后,最主要的就是在父控制中能夠獲取到子控制器,來進(jìn)行一些操作。剛開始試的時候發(fā)現(xiàn)container view關(guān)聯(lián)到控制器中只是一個uiview的類。獲取對應(yīng)的控制器比較麻煩。但是View和Controller 是通過segue來連接的。于是就考慮使用segue的代理方法方法來獲取。

首先在父控制器中聲明兩個控制器 leftVC 和rightVC,然后在

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

? ? ? ? ? if ([segue.identifier isEqualToString:@"left"]) {

? ? ? ? ? ? ? ? self.leftVC =? [segue destinationViewController];

? ? ? ? ? ?}else if ([segue.identifier isEqualToString:@"right"]){

? ? ? ? ? ? ? ? ?self.rightVC=? [segue destinationViewController];

? ? ? ? ? ? }

}

這個方法是優(yōu)先于父控制器viewdidload執(zhí)行的。所以獲取到子控制器后可以在viewdidload中對子控制器進(jìn)行操作。

Over

簡單的記錄一下container view的用法,以后再遇到新的用法會更新,也歡迎大家一起討論怎么使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容