相关的原理知识就不做描述了,有兴趣的可以自己百度下,本文仅说一些可能用的上的操作,如有疑惑或不妥之处欢迎留言交流.
Xcode11之后 如何忽略SceneDelegate跟之前一样仅使用AppDelegate完成项目初始化
1.注释掉AppDelegate中的UISceneSession的代理方法
image.png2.添加@synthesize window = _window;代码在图示位置
image.png3.做完上面两步后,此时的工程就跟之前的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];
}
网友评论