相關(guān)的原理知識就不做描述了,有興趣的可以自己百度下,本文僅說一些可能用的上的操作,如有疑惑或不妥之處歡迎留言交流.
Xcode11之后 如何忽略SceneDelegate跟之前一樣僅使用AppDelegate完成項目初始化
1.注釋掉AppDelegate中的UISceneSession的代理方法

image.png
2.添加@synthesize window = _window;代碼在圖示位置

image.png
3.做完上面兩步后,此時的工程就跟之前的Xcode創(chuàng)建的工程一樣了,該什么騷操作依舊什么騷操作
適應(yīng)新的變化來設(shè)置self.window.rootViewController
初始化window方法需要改變:
現(xiàn)在不再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];
}