2 - UIWindow

UIWindow是一種特殊的UIView,通常在一個app中通常都會有一個UIWindow.

  • iOS程序啟動完畢后,創(chuàng)建的第一個視圖控件就是UIWindow;
  • 接著創(chuàng)建控制器的view.
  • 最后將控制器的view添加到UIWindow上
  • 于是控制器的view就顯示在屏幕上了

一個iOS程序之所以能顯示到屏幕上,完全是因為它有UIWindow
也就說,沒有UIWindow,就看不見任何UI界面

Snip20150831_13.png

Snip20150831_14.png

添加UIView到UIWindow中兩種常見方式:

// 直接將view添加到UIWindow中,但并不會理會view對應(yīng)的UIViewController
- (void)addSubview:(UIView *)view;

// 自動將rootViewController的view添加到UIWindow中,負責(zé)管理rootViewController的生命周期
@property(nonatomic,retain) UIViewController *rootViewController;

常用方法

// 讓當(dāng)前UIWindow變成keyWindow(主窗口)
- (void)makeKeyWindow;

// 讓當(dāng)前UIWindow變成keyWindow,并顯示出來
- (void)makeKeyAndVisible; 

UIWindow的獲得

// 在本應(yīng)用中打開的UIWindow列表,這樣就可以接觸應(yīng)用中的任何一個UIView對象
   (平時輸入文字彈出的鍵盤,就處在一個新的UIWindow中)
[UIApplication sharedApplication].windows

// 用來接收鍵盤以及非觸摸類的消息事件的UIWindow,
   而且程序中每個時刻只能有一個UIWindow是keyWindow.
   如果某個UIWindow內(nèi)部的文本框不能輸入文字,
   可能是因為這個UIWindow不是keyWindow.
[UIApplication sharedApplication].keyWindow

// 獲得某個UIView所在的UIWindow
view.window

四大對象關(guān)系圖

Snip20150831_15.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 7、不使用IB是,下面這樣做有什么問題? 6、請說說Layer和View的關(guān)系,以及你是如何使用它們的。 1.首先...
    AlanGe閱讀 992評論 0 1
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,781評論 8 183
  • #楠得一詞#2017年第197天 王者榮耀 現(xiàn)在最火的游戲應(yīng)該數(shù)“王者榮耀”了?;鸬绞裁闯潭龋约喝グ俣劝?,反正今...
    楠得書寫閱讀 582評論 0 51
  • 戀 · 夢 夜夢微沉, 不經(jīng)意間, 你 出現(xiàn)在我的腦海。 是對你的思念, 還是 玩笑與我的逾逅。 夢里, 牽著你的...
    遇見小凡閱讀 302評論 0 0
  • 每年春節(jié)前后,我們都會彼此一起度過。 年華邁過的第25個年頭,我能說,在我能夠記憶的日子里,她就這么一直存在。年少...
    飛翔的哈哈閱讀 301評論 0 0

友情鏈接更多精彩內(nèi)容