Xcode更新到11以后,新建項(xiàng)目蚀苛,系統(tǒng)新增了一個(gè)SceneDelegate文件在验。
在ios13之前,APP的生命周期和UI生命周期是由Appdelegate全權(quán)負(fù)責(zé)的堵未。
在ios13之后腋舌,這種狀況發(fā)生了改變。
Appdelegate的職責(zé)是:
1渗蟹、處理App生命周期
2块饺、新的Scene Session生命周期
SceneDelegate的職責(zé)是:
1、處理UI生命周期
對(duì)于使用Xcode11創(chuàng)建新項(xiàng)目的開發(fā)者雌芽。初始化window方法需要作出改變授艰。
不在Appdelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions進(jìn)行初始化,而轉(zhuǎn)交給SceneDelegate的willConnectToSession:方法進(jìn)行根控制器設(shè)置:
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
UIWindowScene *windowScene = (UIWindowScene *)scene;
self.window = [[UIWindow alloc] initWithWindowScene:windowScene];
self.window.frame = windowScene.coordinateSpace.bounds;
self.window.rootViewController = [UITabBarController new];
[self.window makeKeyAndVisible];
}
而對(duì)于需要適配ios13以下的設(shè)備世落,可以把相關(guān)的scenedelegate刪掉淮腾。
1、刪除 SceneDelegate 類文件2、刪除info.plist中相關(guān)鍵值
3谷朝、還原appdelegte中的window屬性
4洲押、刪除appdelegate 中 scene 相關(guān)方法
綜上,可以繼續(xù)用原來(lái)的方式創(chuàng)建UI執(zhí)行代碼了圆凰。