前言

1 – 自从 Xcode11 发布以来,当你使用新 XCode 创建一个新的 iOS 项目时 SceneDelegate 会被默认创建

2 – 在 iOS 13 后 SceneDelegate 将负责 AppDelegate 的某些功能。 最重要的是 window 的概念已被 scene 的概念所代替。 一个应用程序可以具有不止一个场景,而一个场景现在可以作为您应用程序的用户界面和内容的载体。尤其是一个具有多场景的 App 的概念很有趣,因为它使您可以在 iOS 和 iPadOS 上构建多窗口应用程序(类似多开)

SceneDelegate

1 – 在 Xcode 11 中有三个地方可以明显地看到 SceneDelegate 的身影:一个新的 iOS 项目会自动创建一个 SceneDelegate,其中包括我们熟悉的生命周期事件 SceneDelegate 还具有下面这些函数

2 – AppDelegate 中则多了两个与 scene sessions 相关的新方法

3、Info.plist 文件中提供了 Application Scene Manifest 配置项,用于配置 App 的场景,包括它们的场景配置名、delegate类名和 storyboard

如何删除 SceneDelegate

1 – 不习惯使用 SceneDelegate 可以将其删除,按原来的方式进行项目开发

① SceneDelegate文件删除

② 删除 AppDelegate 文件中新增的两个函数:application(_:configurationForConnecting:options:) 和 application(_:didDiscardSceneSessions:)

③ Info.plist 文件中 Application Scene Manifest 删除

④ 在 AppDelegate.h 中添加 window 属性:@property (strong, nonatomic) UIWindow *window;

 

版权声明:本文为CodingLife ✎ 原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/self-epoch/p/16808349.html