Xcode11 新变化 SceneDelegate

相关的原理知识就不做描述了,有兴趣的可以自己百度下,本文仅说一些可能用的上的操作,如有疑惑或不妥之处欢迎留言交流.

Xcode11之后 如何忽略SceneDelegate跟之前一样仅使用AppDelegate完成项目初始化

1.注释掉AppDelegate中的UISceneSession的代理方法
image.png
2.添加@synthesize window = _window;代码在图示位置
image.png
3.做完上面两步后,此时的工程就跟之前的Xcode创建的工程一样了,该什么骚操作依旧什么骚操作

适应新的变化来设置self.window.rootViewController

初始化window方法需要改变:
现在不再Appdelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions进行初始化,转交给SceneDelegate的willConnectToSession:方法进行根控制器设置:

- (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];
}

你可能感兴趣的:(Xcode11 新变化 SceneDelegate)