原文地址:https://blog.csdn.net/Rzhghost/article/details/101675332
Xcode自動新增了一個SceneDelegate文件,查找了一下官方文檔WWDC2019:Optimizing App Launch 發(fā)現(xiàn),iOS13中appdelegate的職責(zé)發(fā)現(xiàn)了改變: iOS13之前,Appdelegate的職責(zé)全權(quán)處理App生命周期和UI生命周期; iOS13之后,Appdelegate的職責(zé)是: 1、處理 App 生命周期 2、新的 Scene Session 生命周期 那UI的生命周期呢?交給新增的Scene Delegate處理,?Appdelegate不在負(fù)責(zé)UI生命周期,所有UI生命周期交給SceneDelegate處理
除了與以前版本一樣,要刪除Main storyboard file base name之外, 還要在項(xiàng)目Info.plist中, 刪除SceneDelegate的StoryboardName
初始化window方法需要改變: 現(xiàn)在不再在Appdelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions進(jìn)行初始化, 而是在SceneDelegate中初始化了
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
? ? // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
? ? // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
? ? // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
? ? UIWindowScene *windowScene = (UIWindowScene *)scene;
? ? self.window = [[UIWindow alloc] initWithWindowScene:windowScene];
? ? self.window.backgroundColor = [UIColor purpleColor];
? ? UIViewController *VC = [[UIViewController alloc]init];
? ? UINavigationController *NVC = [[UINavigationController alloc]initWithRootViewController:VC];
? ? [self.window setRootViewController:NVC];
? ? [self.window makeKeyAndVisible];
}
————————————————
版權(quán)聲明:本文為CSDN博主「Rzhghost」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Rzhghost/article/details/101675332