iOS開發之控制器View的建立

2021-07-08 09:42:36 字數 2026 閱讀 7798

首先我們來看一下以下情況window上會載入什麼樣的控制器view。

1>  根據之前講到的,先建立乙個和控制器(hxviewcontroller)同名的xib檔案(檔案中view灰色),並載入初始化該控制器,使它成為window的根控制器。(設定file』s owner控制器,拖線指定view)

**:

hxviewcontroller *vc = [[hxviewcontroller alloc] initwithnibname:@"hxviewcontroller" bundle:nil];

self.window.rootviewcontroller= vc;

顯示的效果:灰色

2>  在1>的基礎上,如果我只在hxviewcontroller中實現loadview方法,其他的地方都沒有改動過,則顯示效果為白色,即沒有建立1>中xib控制器view

顯示效果:白色

3>  將1>中xib刪除,再向專案中新增乙個xib檔案(名為:hxview,設定file』s owner控制器,拖線指定view黃色),再將**

hxviewcontroller *vc = [[hxviewcontroller alloc] initwithnibname:@"hxviewcontroller" bundle:nil];
改為

hxviewcontroller *vc = [[hxviewcontroller alloc] initwithnibname:nil bundle:nil];

hxviewcontroller *vc = [[hxviewcontroller alloc] init];
顯示的效果:黃色

4>  在3>的基礎上,如果再將控制器中的loadview方法開啟。則執行效果顯示同2>相同,即沒有載入3>中xib控制器view。

顯示效果:白色

總結:當指定載入某個

xib檔案中控制器的時候,程式才會去載入那個

xib中的控制器

view

;如果沒有指定某個

xib檔案(即:

nibname

為nil

時)就會去載入

view.xib

中的控制器

view

(如果有的話);如果沒有

view.xib

,系統會返回乙個

nil的

view

載入到window

上。如果控制器實現了

loadview

方法,則系統直接返回該方法中的

view

,不會再去載入

xib/storyboard

中的控制器

view

了。

我覺得mj老師的流程圖更詳細點:(現引用***的圖)

總結:1、控制器的view是延遲載入的:用到的時候才會去載入。

2、可以通過isviewloaded方法來判斷乙個控制器的view是否已經完成了載入。

3、控制器view載入完畢之後,才會呼叫viewdidload方法。(該方法在view載入完畢後,只會被呼叫一次,所有我們會將建立view的子控制項方法放在該方法中執行)

iOS開發UI高階 09控制器的View的建立

ios開發ui篇 控制器的view的建立 一 6種建立控制器view的方式 1 import 2 import njviewcontroller.h 3 41.沒有同名xib情況下 52.通過 storyboard 建立 63.有指定xib情況下建立 74.有同名xib情況 85.有同名去掉cont...

iOS開發UI篇 控制器的View的建立

ios開發ui篇 控制器的view的建立 一 6種建立控制器view的方式 1 import 2 import njviewcontroller.h 3 41.沒有同名xib情況下 52.通過 storyboard 建立 63.有指定xib情況下建立 74.有同名xib情況 85.有同名去掉cont...

iOS開發之控制器的建立

1 控制器常見的建立方式有以下幾種 1 通過storyboard建立 2 直接建立 hxviewcontroller hx hxviewcontroller alloc init 3 指定xib檔案來建立 hxviewcontroller hx hxviewcontroller alloc init...