storyboard
//1.創(chuàng)建窗口
self.window= [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];
//2.獲取storyboard中箭頭指向的控制器
UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"Main" bundle:nil];
//UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"123"
bundle:nil];
UIViewController*vc = [storyboardinstantiateInitialViewController];
//3.設(shè)置window的主控制器
self.window.rootViewController= vc;
//4.顯示窗口
[self.windowmakeKeyAndVisible];
xib
/通過xib加載控制器的步驟
//1.創(chuàng)建xib文件
//2.xib拖一個view去描述控制器的view
//3.告訴xib是描述控制器,設(shè)置file'owner為控制器,可以往控制器中拖線
//4.連線,告訴控制器哪個view描述你的view
//1.創(chuàng)建窗口
self.window= [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];
//2.設(shè)置窗口根控制器
//2.1通過xib創(chuàng)建窗口的根控制器:initWithNibName
//NibName:xib名稱
ViewController*vc = [[ViewControlleralloc]initWithNibName:@"VC"bundle:nil];
self.window.rootViewController= vc;
//3.顯示窗口
[self.windowmakeKeyAndVisible];
UIWindows補充
6.1>自己創(chuàng)建窗口,窗口顯示出來,兩個條件。1.makeKeyAndVisible2.窗口不要被釋放6.2>keyWindow:makeKeyAndVisible會讓窗口成為主窗口,并且顯示出來,打印apple
6.3>創(chuàng)建的窗口交給windows這個數(shù)組管理: ?
○在創(chuàng)建一個窗口顯示出來,一個應用程序只有一個主窗口,并且顯示出來的窗口,application管理,application有個Windows數(shù)組,存放顯示出來的窗口,有一個例外 態(tài)欄也是一個窗口,但是沒有交給application管理。打印application.windows
6.4>還有那些是窗口?鍵盤也是窗口,創(chuàng)建一個textField成為第一響應者,并且加到最里
顯示在最前面,打印application.windows,就知道了。
6.5>為什么他們會顯示在最前面,因為窗口有層級,他們的層級高
6.6
>windowLevel:UIWindowLevelNormal < UIWindowLevelStatusBar
< UIWindowLevelAlert
UIWindowLevelNormal:默認窗口的層級UIWindowLevelStatusBar :狀態(tài)欄,鍵盤嫉嘀、UIWindowLevelAlert:UIActionSheet,UIAlearView
6.7>把window的層級設(shè)置為UIWindowLevelAlert,就會顯示在最前面奋渔。
6.8>其實層級的數(shù)據(jù)類型是CGFloat尝丐,所以可以通過加減乘除來改變其層級
例如UIWindowLevelAlert