iOS學習之控制器的建立

2021-07-12 07:57:03 字數 2691 閱讀 3973

本次部落格是一篇總結性質的部落格,總結的是各種建立控制器的方式以及一些需要注意的操作。

通過 storyboard 建立控制器也是在 main inte***ce 沒有選定的時候,但是我們還使用系統建立好的 main.storyboard,通過不同的方法來建立視窗的根控制器。

//

建立視窗

self.window = [[uiwindow alloc] initwithframe:[uiscreen mainscreen].bounds];

初始化方法:

//

引數1:storyboard檔名,不需要帶字尾

//引數2:置為nil時表示[nsbundle mainbundle]

+ (uistoryboard *)storyboardwithname:(nsstring *)name bundle:(nullable nsbundle *)storyboardbundleornil;

例項**:

//

載入storyboard

//storyboard檔名,不需要帶字尾,初始化為 main.storyboard,name就是main

//nil: [nsbundle mainbundle]

uistoryboard *storyboard = [uistoryboard storyboardwithname:@"

main

" bundle:nil];

① 指定箭頭指向的控制器為視窗的根控制器

方法:

//

載入箭頭指向的控制器

- (nullable __kindof uiviewcontroller *)instantiateinitialviewcontroller;

例項**:

//

通過storyboard建立控制器

//instantiateinitialviewcontroller:載入箭頭指向的控制器

uiviewcontroller *vc = [storyboard instantiateinitialviewcontroller];

例項圖:

如上圖:我們將粉色背景的控制器設定為預設 main.storyboard 

的控制器,當我們使用上述**時,程式執行的效果是:如下圖的乙個粉色視窗

② 通過 storyboard

id 來建立根控制器

方法:

//

引數為:storyboard id 的字串

- (__kindof uiviewcontroller *)instantiateviewcontrollerwithidentifier:(nsstring *)identifier;

例項**:

//

通過 storyboard id 建立控制器

uiviewcontroller *vc = [storyboard instantiateviewcontrollerwithidentifier:@"

green

"];

正如 ① 中所示的圖,我們將綠色背景的控制器的 storyboard id

置為 "green",但是main.storyboard 

的預設控制器仍然為粉色背景的控制器,使用上述例項**,執行結果為如下圖的乙個綠色視窗

建立xib的方法:

① 在建立乙個檢視控制器的類的時候,將 also create xib file 選中之後,就會建立出來乙個和控制器類對應的xib,如下圖:

這種方法建立的xib的名字與所對應的類名相同。

② 建立乙個名字可以自定義的 xib 

建立後的設定:(具體如下圖)

(1)選擇檔案所有者選項

(2)繫結控制器

(3)繫結xib檢視

通過xib建立根控制器的方法是乙個控制器的初始化方法,例項**:

//

通過xib建立控制器

viewcontroller *vc = [[viewcontroller alloc] initwithnibname:@"

viewcontroller

" bundle:nil];

載入xib的特殊寫法:

//

特殊寫法1:

uiviewcontroller *vc =[[viewcontroller alloc] initwithnibname:nil bundle:nil];

//特殊寫法2:

uiviewcontroller *vc = [[viewcontroller alloc] init];

以上 xib 的特殊寫法載入 xib view 檢視的底層實現:

如果描述控制器 view 的 xib 跟控制器的類名相同,就會去載入

只有控制器的 init 方法底層會呼叫 initwithnibname:bundle:

只要通過 initwithnibname:bundle: 初始化控制器,並且 nibname 為 nil ,就會執行以下幾步:

(1)先尋找有沒有跟控制器類名同名但是不帶controller的xib,如果有就會去載入(xmgview.xib)

(2)如果沒有就尋找有沒有跟控制器類名同名的xib,如果有就會去載入(xmgviewcontroller.xib)

(3)如果都沒有找到,建立空的view,

iOS開發之控制器的建立

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

iOS開發之控制器View的建立

首先我們來看一下以下情況window上會載入什麼樣的控制器view。1 根據之前講到的,先建立乙個和控制器 hxviewcontroller 同名的xib檔案 檔案中view灰色 並載入初始化該控制器,使它成為window的根控制器。設定file s owner控制器,拖線指定view hxview...

iOS學習筆記 047 控制器View的建立

三根據loadview建立 四根據storyboard建立 五有指定xib情況下建立 六有同名去掉controller的 xib情況 七有同名xib情況 八沒有同名xib的情況 九控制器的view的backgroundcolor說明 十控制器view的延遲載入 重寫控制器的loadveiw方法 如果...