日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

iOS开发之UIWindow

發布時間:2025/6/15 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发之UIWindow 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、概述

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

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

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

2、添加UIViewUIWindow中兩種常見方式

方式一:

- (void)addSubview:(UIView *)view;

直接將view添加到UIWindow中,但并不會理會view對應的UIViewController

例如:

MjOneViewController *one = [[MjOneViewController alloc] init];

[self.window addSubview:one.view];

方式二(開發中實際使用的方法,首選):

@property(nonatomic,retain) UIViewController *rootViewController;

自動將rootViewController的view添加到UIWindow中,負責管理rootViewController的生命周期

例如:

MjOneViewController *one = [[MjOneViewController alloc] init];

self.window.rootViewController = one;

常用方法:

- (void)makeKeyWindow;

讓當前UIWindow變成keyWindow(主窗口)。

?

- (void)makeKeyAndVisible;

讓當前UIWindow變成keyWindow,并顯示出來。

3、獲得UIWindow

[UIApplication sharedApplication].windows

在本應用中打開的UIWindow列表,這樣就可以接觸應用中的任何一個UIView對象。

(平時輸入文字彈出的鍵盤,就處在一個新的UIWindow中)

?

[UIApplication sharedApplication].keyWindow

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

?

view.window

獲得某個UIView所在的UIWindow。

【備注】一個空項目中,AppDelegate類遵守了UIApplicationDelegate協議,之后在相應事件發生時候UIApplication會通知它的delegate對象,比如,當應用啟動完畢會UIApplication會通知AppDelegate,之后會自動調用AppDelegate中的didFinishLaunchingWithOptions,這時直接啟動之時一個黑的界面,沒有任何東西。要想顯示東西,首先要用set方法往里面添加一個UIWindow:

self.window =

[[UIWindow alloc]initwithframe[UIScreen mainScreen].bounds];

添加過還不能顯示,因為可能存在多個UIWindow,我們要調用get方法獲取剛才設置的UIWindow把它設置為主窗口并且顯示出來:

[self.window makeKeyAndVisible];

之后顯示的就是這個UIWindow了,我們之后就可以往這個UIWindow中添加控制器(相當于android中的Activity),添加時要添加為根控制器這個控制器才能顯示出來:

self.window.rootViewController =

myViewController;

總結

以上是生活随笔為你收集整理的iOS开发之UIWindow的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。