漸漸被遺忘的東西—UIWindow

什么是UIWindow

UIWindow是一種特殊的UIView,通常在一個app中至少會有一個UIWindow,iOS程序啟動完畢后,創建的第一個視圖控件就是UIWindow,接著創建控制器的View,最后將控制器的view添加到UIWindow上,于是控制器的view就顯示在屏幕上了。

取消App自動加載main.StoryBoard

General中找到Main interface , 將輸入框中的數據清空后就不會加載main.StoryBoard

App取消自動加載main.StoryBoard后,如果什么也不做,會顯示黑屏,這時我們需要做的是:

  1. 找到AppDelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  2. 創建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  1. 設置窗口根控制器
KYViewController * kvc = [[KYViewController alloc] init];
self.window.rootViewController = kvc;
  1. 顯示窗口
[self.window makeKeyAndVisible];

[self.window makeKeyAndVisible] 的底層實現其實就是將self.window的指針指向UIApplication對象的keyWindow屬性

如果想管理當前應用程序的所有Window,可以使使用[UIApplication sharedApplication].windows獲取

設置窗口層級

UIWindow對象設置windowLevel屬性

@property(nonatomic) UIWindowLevel windowLevel;  

兩個特殊的Window

  1. 狀態欄
  2. 彈出鍵盤
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容