- 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。
- 吾老之域:老年人微信生活與家庭微信反哺
- 加權(quán)分?jǐn)?shù)傅里葉變換及其在通信系統(tǒng)中的應(yīng)用
- 液晶顯示器維修技能實(shí)訓(xùn)
- 電子線路CAD設(shè)計(jì)與仿真
- Mentor PADS VX2.7(中文版)電子設(shè)計(jì)速成實(shí)戰(zhàn)寶典
- 彩色電視機(jī)現(xiàn)場(chǎng)維修實(shí)錄
- 手繪圖說萬用表使用
- 21堂課精通電子元器件檢測(cè)
- 數(shù)字視頻處理與顯示
- 5G XR技術(shù)與應(yīng)用
- 移動(dòng)通信終端設(shè)備(手機(jī))維修實(shí)訓(xùn)
- 5G時(shí)代的網(wǎng)絡(luò)安全
- 深入淺出通信原理
- 電子元器件檢修與應(yīng)用
- 電冰箱、空調(diào)器原理與維修·電視機(jī)原理與維修