因为iOS13后处理方式不一样的原因.
删掉工程中main.storyboard 后要删除plist文件中对应的键值外,还要删除其他的。具体如下
1.删除plist文件中对应的键值
2.删除Application Scene manifest。这个是iOS13后,在之前AppDelegate的基础上多出了一个SceneDelegate,会将AppDelegate里的lifecycle的那些代理方法转交给SceneDelegate
3。注释掉appdelegat.m里的这两个方法 configurationForConnectingSceneSession 和didDiscardSceneSessions。
根据苹果官方文档的大概意思就是,一个UISceneSession不用你直接去创建对象,你可以用UIApplication里的requestSceneSessionActivation:userActivity:options:errorHandler:方法,这个方法会帮你初始化一个基于info.plist文件里的默认configuration的session对象。
因此xcode11中要实现自己的没有默认main.storyboard的项目,就得将SceneDelegate里的lifecycle转交给AppDelegate,按照上面所说,这一步操作就是,删除或注释一下截图里的两个方法( 引自作者:Harllan_he 链接:https://www.jianshu.com/p/e255303d11b8)
4.就是代码初始化你的window了,删除main.storyboard后,需要在AppDelegate.m中初始化一个window进行使用,否则应用程序没有window可用。
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.window makeKeyAndVisible]