self.window = [[uiwindow alloc] initwithframe:[[uiscreen mainscreen] bounds]];1、直接建立:self.window.backgroundcolor = [uicolor whitecolor];
[self.window makekeyandvisible];
return yes;
//建立控制器直接例項化乙個uiviewcontroller的物件,設定為window的根控制器,這裡我設定例項化的viewcontroller的view背景色為紫色,執行就顯示紫色,而且我新增上去的switch控制項也能夠隨手機螢幕的轉動而旋轉。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];
需要注意的是如果有兩個window物件,在ios7之前,只有主視窗的控制器裡面的控制項能夠互動,但是在ios7,不管你是不是主視窗,都能夠正常使用裡面的控制項。
2、通過storyboard建立uiviewcontroller
//通重載入storyboard建立viewcontroller通過storyboard建立,先受用storyboardwithname方法找到指定名字的storyboard物件,這裡只是載入了這個storyboard,還沒有建立任何ui元素呢哦……然後通過instantiateinitialviewcontroller方法,該方法建立了故事板中箭頭指向的那個控制器物件。乙個故事板中當然可以包括很多的控制器物件,如果想要建立指定的控制器物件,一般使用instantiateviewcontrollerwithidentifier方法,指定控制器的storyboard id就搞定了。如上**我建立了兩個控制器//僅僅是載入了名為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];
3、通過xib檔案建立uiviewcontroller
xib是storyboard的前身,都是對介面布局的描述檔案,故而可以通過xib檔案進行建立
viewcontrollertest *vc=[[viewcontrollertest alloc] initwithnibname:@"one" bundle:nil];這種方式的**就簡單多了,只需要在例項化控制器物件的initwithnibname方法中,指定xib檔名即可,只是有一點需要注意,就是指定的xib檔案一定要繼承例項化的viewcontroller物件,也就是指定xib檔案的custom class物件為**中的viewcontrollertest物件即可。self.window.rootviewcontroller=vc;
最後需要說明的是,如果一旦重寫了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...