iOS基础 - SceneDelegate

▶ SceneDelegate

自 Xcode11 发布以来,当你使用新 XCode 创建一个新的 iOS 项目时 SceneDelegate 会被默认创建!在 iOS 13 后它将负责 AppDelegate 的某些功能

最重要的是 window 的概念已被 scene 的概念所代替。 一个应用程序可以具有不止一个场景,而一个场景现在可以作为您应用程序的用户界面和内容的载体。尤其是一个具有多场景的 App 的概念很有趣,因为它使您可以在 iOS 和 iPadOS 上构建多窗口应用程序

在 Xcode 11 中有三个地方可以明显地看到 SceneDelegate 的身影

A:一个新的 iOS 项目会自动创建一个 SceneDelegate,其中包括我们熟悉的生命周期事件 SceneDelegate 还具有下面这些函数

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

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

▶ 如何删除 SceneDelegate

不习惯使用 SceneDelegate 可以将其删除,步骤如下

A. 首先删除 SceneDelegate文件:.h 和 .m 

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

C. 删除 Info.plist文件 中的 Application Scene Manifest

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

 

posted on 2022-10-20 01:07  低头捡石頭  阅读(588)  评论(0编辑  收藏  举报

导航