標籤:style blog http ar io color os 使用 sp
A.UIWindow概念1.繼承UIView,是一種特殊的UIView2.通常一個APP只有一個UIWindow3.iOS程式啟動後,建立的第一個視圖就是UIWindow4.沒有UIWindow,不能顯示任何東西
B.使用1.建立一個Empty Application項目沒有了storyboard,要手動實現UIWindow的建立代碼(其實這就是storyboard做的事情)
1 // 手動建立UIWindow,並加到screen上2 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];3 self.window.backgroundColor = [UIColor whiteColor];4 [self.window makeKeyAndVisible];
2.建立一個控制器 3.把控制器的view添加到UIWindow(1)直接添加控制器的view到UIWindow
1 // 添加控制器2 ViewController *controller = [[ViewController alloc] init];3 [self.window addSubview:controller.view];
不建議此方法,因為a.可能自訂控制器變數被銷毀之後,其view還在UIWindow中被使用,如果再使用控制器會引起崩潰b.由於沒有傳自訂控制器給UIWindow,不能處理各種相關事件(例如旋轉螢幕) (2)設定自訂控制器為UIWindow的rootViewController設定了根控制器之後,會自動把自訂控制器的view加到UIWindow
1 // 添加控制器2 ViewController *controller = [[ViewController alloc] init];3 // [self.window addSubview:controller.view];4 self.window.rootViewController = controller;
(3)在controller中設定狀態列可視
1 - (BOOL)prefersStatusBarHidden {2 return NO;3 } 4.介面切換其實是不同的控制器替換到UIWindow上面改變self.window.rootViewController
[iOS基礎控制項 - 6.10.7] UIWindow & 程式啟動過程