Xcode11中创建工程新增了SceneDelegate文件,目的是承担AppDelegate的UI生命周期处理工作。
iOS13之前(只使用AppDelegate):这种模式只有一个进程,只有一个与这个进程对应的用户界面。
iOS13之后(使用AppDelegate+SceneDelegate):SceneDelegate这个东西是管理window的,一个应用程序可以具有不止一个Scene场景,而一个场景可以作为您应用程序的用户界面和内容的载体,因此你可以使用该方式在iOS和iPadOS上构建多窗口应用程序。
如果我们需要按照原来的方式进行项目开发,需要做如下操作:
1、删除新创建工程中的两个SceneDelegate文件
2、删除AppDelegate.m文件中与SceneDelegate生命周期相关的两个函数
3、删除Info.plist文件中的Application Scene Manifest
4、将window控制权交给了AppDelegate(需要在AppDelegate.h文件中添加UIWindow属性,方便根window设置)
5、在AppDelegate.m函数(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中初始化我们的根控制器
做完以上操作后我们就可以像以前使用Xcode的方式一样进行开发了。