IOS中UIViewController的建立

2022-03-16 02:57:48 字數 2335 閱讀 7208

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

self.window.backgroundcolor = [uicolor whitecolor];

[self.window makekeyandvisible];

return yes;

1、直接建立:

//建立控制器

viewcontrollertest *vc=[[viewcontrollertest alloc] init];

vc.view.backgroundcolor=[uicolor purplecolor];

uiswitch *s=[[uiswitch alloc] init];

[vc.view addsubview:s];

//將控制器的view新增到window上的方法有個弊端

//所以一般建議將自己建立的viewcontroller以window跟控制器的方式設定

//[self.window addsubview:vc.view];

self.window.rootviewcontroller=vc;

//讓建立的uiwindow成為主視窗並顯示出來

[self.window makekeyandvisible];

直接例項化乙個uiviewcontroller的物件,設定為window的根控制器,這裡我設定例項化的viewcontroller的view背景色為紫色,執行就顯示紫色,而且我新增上去的switch控制項也能夠隨手機螢幕的轉動而旋轉。

需要注意的是如果有兩個window物件,在ios7之前,只有主視窗的控制器裡面的控制項能夠互動,但是在ios7,不管你是不是主視窗,都能夠正常使用裡面的控制項。

2、通過storyboard建立uiviewcontroller

//通重載入storyboard建立viewcontroller

//僅僅是載入了名為storyboard的storyboard,並不會建立storyboard中的控制器以及控制項

uistoryboard *sb=[uistoryboard storyboardwithname:@"storyboard" bundle:nil];

//建立storyboard中箭頭指向的控制器

viewcontrollertest *vc=[sb instantiateinitialviewcontroller];

self.window.rootviewcontroller=vc;

viewcontrollertest *vc2=[sb instantiateviewcontrollerwithidentifier:@"two"];

self.window.rootviewcontroller=vc2;

[self.window makekeyandvisible];

通過storyboard建立,先受用storyboardwithname方法找到指定名字的storyboard物件,這裡只是載入了這個storyboard,還沒有建立任何ui元素呢哦……然後通過instantiateinitialviewcontroller方法,該方法建立了故事板中箭頭指向的那個控制器物件。乙個故事板中當然可以包括很多的控制器物件,如果想要建立指定的控制器物件,一般使用instantiateviewcontrollerwithidentifier方法,指定控制器的storyboard id就搞定了。如上**我建立了兩個控制器

3、通過xib檔案建立uiviewcontroller

xib是storyboard的前身,都是對介面布局的描述檔案,故而可以通過xib檔案進行建立

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

self.window.rootviewcontroller=vc;

這種方式的**就簡單多了,只需要在例項化控制器物件的initwithnibname方法中,指定xib檔名即可,只是有一點需要注意,就是指定的xib檔案一定要繼承例項化的viewcontroller物件,也就是指定xib檔案的custom class物件為**中的viewcontrollertest物件即可。

最後需要說明的是,如果一旦重寫了viewcontroller的loadview方法,那麼不論通過哪種方法建立uiviewcontroller都白費了。

最後附上一張圖,完整的說明各種建立viewcontroller的方法和選擇過程

IOS開發中如何區分IOS版本

當前系統支援的最小版本 iphone os version min required 當前系統支援的最大版本 iphone os version max allowed 比如用iphone os sdk 3.1.2 編譯的程式 iphone os version min required iphon...

ios中讀寫檔案

在ios的開發中,經常遇到要讀寫檔案的情況,例如處理 採集資訊等,那麼在ios中對檔案的讀寫有兩種方式 1 使用nsdata 來將整個資料讀取到記憶體中 將檔案寫到檔案中 使用這種方式比較適合針對小檔案的讀寫,可以全部的讀到記憶體中處理,比如說全域性性的配置檔案等。2 使用c的api來讀取 在ios...

ios中讀寫檔案

在ios的開發中,經常遇到要讀寫檔案的情況,例如處理 採集資訊等,那麼在ios中對檔案的讀寫有兩種方式 1 使用nsdata 來將整個資料讀取到記憶體中 將檔案寫到檔案中 使用這種方式比較適合針對小檔案的讀寫,可以全部的讀到記憶體中處理,比如說全域性性的配置檔案等。2 使用c的api來讀取 在ios...