- iPhone UIKit詳解
- 王志剛 王中元 朱蕾編著
- 779字
- 2019-01-01 07:04:28
3.7 UIViewController與相關(guān)類間關(guān)系概要
3.7.1 UIViewController與UIView/UIWindow的關(guān)系
UIViewController中以view屬性的形式擁有UIView,此UIView作為UIWindow的subviews追加進(jìn)來顯示在畫面中。為反映這種聯(lián)系,以讓各元素間的關(guān)系(通過屬性)更清楚地呈現(xiàn)在大家面前,特繪制了如圖3-33所示的對(duì)象關(guān)系圖。

圖3-33 UIViewController類與UIView/UIWindow間的關(guān)系
圖中所有用線關(guān)聯(lián)起來的對(duì)象之間均有屬性關(guān)系。其中用帶四方形箭頭的線連接的兩個(gè)對(duì)象之間,四方形箭頭指向的一方擁有另一方。例如UIViewController與中間的UIView之間,UIViewController以view屬性的形式擁有UIView對(duì)象,屬性名稱顯示在靠近UIView一邊。此圖中反映的關(guān)系特征如下。
- UIViewController擁有一個(gè)UIView(view屬性)。
- UIViewController的view中可以追加任意數(shù)目的UIView以創(chuàng)建畫面。
- UIView中可以包含多個(gè)UIView(subviews)。
- UIView可通過superview屬性參照父UIView。
- 如果是UIWindow的子元素(subviews),則可通過Window屬性參照UIWindow。
3.7.2 UITabBarController與各畫面的關(guān)系
接著我們將UITabBarController與各畫面的關(guān)系歸納為如圖3-34所示。

圖3-34 UITabBarController與各畫面的關(guān)系
此圖反映的關(guān)系特征如下。
● UITabBarController通過viewControllers屬性管理多個(gè)UIViewController。
● viewControllers的UIViewController中,可通過selectedViewController屬性參照當(dāng)前畫面的UIViewController。
● 對(duì)于viewControllers中的UIViewController來說,可通過tabBarController屬性參照UITabBarController。
● 對(duì)于viewControllers中的UIViewController來說,也可通過parentViewController屬性參照UITabBarController。
3.7.3 UINavigationController與各畫面的關(guān)系
這里將UINavigationController與各畫面的關(guān)系歸納為如圖3-35所示。

圖3-35 UINavigationController與各畫面的關(guān)系
此圖反映的關(guān)系特征如下。
● UINavigationController的viewControllers屬性中保存了跳轉(zhuǎn)路徑中所有畫面的UIViewController。
● 跳轉(zhuǎn)路徑中所有畫面的UIViewController中,可通過topViewController取得當(dāng)前畫面的UIViewController。
● 對(duì)于跳轉(zhuǎn)路徑中所有畫面的UIViewController來說,可以通過其navigationController屬性參照UINavigationController。
● 跳轉(zhuǎn)路徑中已經(jīng)退出的畫面與UINavigationController沒有任何關(guān)系。
● 跳轉(zhuǎn)路徑中各畫面的parentViewController屬性參照的不是上一畫面而是UINavigationController。
3.7.4 UIViewController與模態(tài)畫面的關(guān)系
這里將UIViewController與模態(tài)畫面的關(guān)系歸納為如圖3-36所示。

圖3-36 UIViewController與模態(tài)畫面間的關(guān)系
此圖反映的關(guān)系特征如下。模態(tài)畫面可通過當(dāng)前畫面UIViewController的modalViewController屬性進(jìn)行參照。
● 就算模態(tài)畫面被顯示,UINavigationController的topViewController也不是指向模態(tài)畫面,而是仍然指向彈出模態(tài)畫面的原畫面的UIViewController。
● 對(duì)于UINavigationController的visibleViewController屬性來說,如果模態(tài)畫面被顯示,則指向模態(tài)畫面。
● 模態(tài)畫面的parentViewController并非指向模態(tài)畫面的母畫面,而是指向UINavigationController。
- 玩轉(zhuǎn)我的iPhone 4
- 邊緣計(jì)算技術(shù)與應(yīng)用
- Serverless架構(gòu):無服務(wù)器應(yīng)用與AWS Lambda
- 電子線路
- WCDMA基站系統(tǒng)原理與裝調(diào)維護(hù)
- 反相對(duì)稱-擴(kuò)頻通信系統(tǒng)抗噪聲性能研究
- 數(shù)字視聽產(chǎn)品原理與維修
- 液晶電視機(jī)檢修手冊(cè)
- 海洋通信網(wǎng)絡(luò)協(xié)議、算法和架構(gòu)
- 寬帶光接入技術(shù)
- 電子線路基礎(chǔ)輕松入門
- 電子技術(shù)(第3版)
- 創(chuàng)客電子制作實(shí)例精選:36個(gè)趣味電子DIY項(xiàng)目
- 電子裝聯(lián)中的無鉛焊料
- 瓷片的誘惑