生命周期的變化
iOS13之前
Appdelegate的職責全權處理App生命周期和UI生命周期;
iOS13之后:
Appdelegate的職責是:
1需频、處理 App 生命周期
2、新的 Scene Session 生命周期
iOS13之后UI生命周期由新的 Scene Session負責
初始化window的變化
新的xcode默認是storyboard加載修肠,如果要改為代碼加載需要在Scene Session中添加
- (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];
}
但目前Scene Session只支持iOS13贺辰,兼容以前的版本,做版本判斷嵌施,或者直接刪掉Scene Session饲化,回到熟悉的iOS13之前,需要如下步驟:
1.刪除info.plist中的Application Scene Manifest,刪除MainInterface
image.png
2.刪除Appdelegate中UISceneSession的相關代碼吗伤,并添加如下代碼
@property (strong, nonatomic) UIWindow *window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = UIColor.whiteColor;
self.window.rootViewController = BaseTabBarController.new;
[self.window makeKeyAndVisible];
return YES;
}