一、ios程式的完整啟動過程(有storyboard)123>開啟乙個訊息迴圈
5>載入info.plist檔案,讀取最主要storyboard檔案的名稱
6>載入最主要的storyboard檔案,建立白色箭頭所指的控制器物件
7>並且設定第6步建立的控制器為uiwindow的rootviewcontroller屬性(根控制器)
8>展示uiwindow,展示之前會將新增rootviewcontroller的view到uiwindow上面(在這一步才會建立控制器的view)
[window addsubview: window.rootviewcontroler.view];
二、uiwidnow
1.常見方法
1>成為主視窗
[window makekeywindow];
2>顯示、並且成為主視窗
[window makekeyandvisible];
3>僅僅是顯示視窗
window.hidden =no;
2.主視窗
2>如何訪問主視窗34
.螢幕的旋轉事件
2>最終,旋轉事件傳遞到uiwidnow身上,uiwindow會通知rootviewcontroler,rootviewcontroler自己會決定要不要做相應的旋轉操作
三、uiviewcontroller
1.控制器內部的view是延遲載入
1>用到時再載入
2>載入完畢後會呼叫控制器的viewdidload方法
2.建立控制器的方式
1>直接通過**建立
cjoneviewcontroller *one =[[cjoneviewcontroller alloc] init];
//如果呼叫init方法建立控制器(cjtwoviewcontroller),那麼在載入控制器view的時候:
//1.優先查詢 「cjtwoview.xib」
//2.其次再查詢 同名 的xib 檔案 「cjtwoviewcontroller.xib」
//3.如果沒有找到上述的xib檔案,會直接通過**建立乙個空白的view
2>通過storyboard建立控制器
*載入storyboard檔案
uistoryboard *story = [uistoryboard storyboardwithname:@"
sb的檔名
"bundle:nil];
*從storyboard中建立控制器
//根據控制器在storyboard檔案中storyboard id來建立
cjoneviewcontroller *one = [story instantiateviewcontrollerwithidentifier:@"
控制器的storyboard id"];
//直接建立箭頭所指的控制器(initial controller)
cjoneviewcontroller *one =[story instantiateinitialviewcontroller];
3>通過xib建立控制器
//建立控制器的view時,就會載入cjoneviewcontroller.xib檔案,並且會將控制器當做是xib的owner傳入
cjoneviewcontroller *one = [[cjoneviewcontroller alloc] initwithnibname:@"
cjoneviewcontroller
"bundle:nil];
//載入one控制器的view:[[nsbunle mainbundle] loadnibname:@"cjoneviewcontroller" owner:one options:nil];
//總結:能用storyboard描述控制器的view,就盡量用storyboard
iOS 程式啟動過程
1.main函式 程式啟動後 首先執行main函式,3.delegate 物件開始處理 監聽 系統事件 沒有storyboard uiwindow 繼承子uiview ios 程式啟動後建立的 第乙個可視控制項就是uiwindow,乙個程式之所以能顯示在螢幕上 是因為 它有window 想要是 wi...
iOS啟動過程
1.main函式 3.delegate物件開始處理 監聽 系統事件 沒有storyboard tions 方法 tions 中建立uiwindow 建立和設定uiwindow的rootviewcontroller 顯示視窗 3.根據info.plist獲得最主要storyboard的檔名,載入最主要...
iOS開發之iOS程式的啟動過程
程式啟動的完整過程 1 main函式 2 3 delegate物件開始處理 監聽 系統事件 沒有storyboard 建立和設定uiwindow的rootviewcontroller 顯示視窗 3 根據info.plist獲得最主要storyboard的檔名,載入最主要的storyboard 有st...