SceneDelegate有什么作用?删除有什么影响

2023-05-16

自从Xcode11发布以来,当你使用新XCode创建一个新的iOS项目时,SceneDelegate会被默认创建,它到底有什么用呢?

在iOS 13(及以后版本)上,SceneDelegate将负责AppDelegate的某些功能。 最重要的是,window(窗口)的概念已被scene(场景)的概念所代替。 一个应用程序可以具有不止一个场景,而一个场景现在可以作为您应用程序的用户界面和内容的载体(背景)。

尤其是一个具有多场景的App的概念很有趣,因为它使您可以在iOS和iPadOS上构建多窗口应用程序。 例如,文档编辑器App中的每个文本文档都可以有自己的场景。 用户还可以创建场景的副本,同时运行一个应用程序的多个实例(类似多开)。

在Xcode 11中有三个地方可以明显地看到SceneDelegate的身影:
1、现在,一个新的iOS项目会自动创建一个SceneDelegate类,其中包括我们熟悉的生命周期事件,例如active,resign和disconnect。
SceneDelegate还具有下面这些函数:
1)sceneDidDisconnect(_:)当场景与app断开连接是调用(注意,以后它可能被重新连接)
2)sceneDidBecomeActive(_:)当用户开始与场景进行交互(例如从应用切换器中选择场景)时,会调用
3)sceneWillResignActive(_:)当用户停止与场景交互(例如通过切换器切换到另一个场景)时调用
4)sceneWillEnterForeground(_:)当场景变成活动窗口时调用,即从后台状态变成开始或恢复状态
5)sceneDidEnterBackground(_:)当场景进入后台时调用,即该应用已最小化但仍存活在后台中
2、AppDelegate类中多了两个与“scene sessions”相关的新方法:
1)application(_:configurationForConnecting:options:) 会返回一个创建场景时需要的UISceneConfiguration对象2)application(_:didDiscardSceneSessions:)当用户通过“应用切换器”关闭一个或多个场景时会被调用
3、Info.plist文件中提供了”Application Scene Manifest“配置项,用于配置App的场景,包括它们的场景配置名,delegate类名和storyboard

项目中SceneDelegate相关结构示例图
在这里插入图片描述
在这里插入图片描述

不习惯使用SceneDelegate可以将其删除,按原来的方式进行项目开发
删除操作:
1、SceneDelegate文件删除
2、AppDelegate文件中函数application(_:configurationForConnecting:options:)application(_:didDiscardSceneSessions:)删除
3、Info.plist文件中Application Scene Manifest删除

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SceneDelegate有什么作用?删除有什么影响 的相关文章

随机推荐

  • 超长docker笔记

    docker ce 和docker ee docker操作容器只需要id前4位就可以 docker编译安装 https blog csdn net lwyeluo article details 51765309 删除命令 docker r
  • 第1课【寄存器开发到库开发】寄存器 库 位操作 封装 分层 GPIO

    目录 基本知识框架课堂笔记什么是寄存器开发什么是库开发寄存器开发和库开发的关联寄存器开发的基本流程寄存器开发的优缺点 库开发的基本流程库开发的优缺点 结论 如何从寄存器开发实现库开发 xff08 GPIO口为例 xff0c 通过操作其寄存器
  • python str基本用法

    目录 1 没什么用的 1 1 调用实例属性后自动执行 getattribute 1 2 实例化后自动调用 new 1 3 将其他变量转变为字符串 repr 1 4 反向替代占位符 格式化 rmod 1 5 字符串反向做乘法 rmul 1 6
  • 32.QButtonGroup

    目录 1 创建和添加按钮 1 1 创建按钮组 1 2 添加按钮 addButton 2 查看按钮 2 3 获取当前选中的按钮 CheckedButton 3 从按钮组中移除按钮 removeButton 4 ID操作 4 1 设置 setI
  • Windows下的Win32串口编程

    在工业控制中 xff0c 工控机 xff08 一般都基于Windows平台 xff09 经常需要与智能仪表通过串口进行通信 串口通信方便易行 xff0c 应用广泛 一般情况下 xff0c 工控机和各智能仪表通过RS485总线进行通信 RS4
  • Ubuntu内网穿透

    本文借鉴 使用frp进行内网穿透 少数派 目录 1 准备材料 2 服务端部署 3 服务端后台运行 4 客户端部署 1 准备材料 1 一台具有公网IP的实体机 xff08 服务端 xff0c 也可以是vps 2 一台网页部署内网的实体机 客户
  • Ubuntu系统基本操作

    文章中所需要的文件可以在这里下载 链接 xff1a https pan baidu com s 1NYXxHD0jebngmCTEwgjGbQ 提取码 xff1a 2jyo 目录 1 安装谷歌浏览器 2 修改开机启动项 3 快捷键查找与设置
  • Ubuntu向日葵锁定之后忘记密码后解除锁定状态

    此操作会重置本机识别码与本机验证码 我们在使用向日葵的时候会使用锁定按钮 设置完密码之后 xff0c 我们忘了 xff0c 就会导致无法使用向日葵 重新安装也不能解决问题 xff0c 这个时候我们找到etc orayconfig conf
  • 26.疲劳检测

    目录 1 项目介绍 2 代码实现 2 1 导入库 2 2 定义68个关键点 2 3 定义eye aspect ratio 2 4 定义参数 2 5 定义阈值 2 6 定义次数 2 7 创建检测器 2 8 获取左眼与右眼的起始点与终止点 2
  • NX点亮oled

    效果是这样的 目录 1 接线 2 配置环境 3 运行代码 4 显示开发板信息 1 接线 小屏幕的名称叫oled xff0c 使用芯片SSD1306驱动 上面有四个引脚 xff0c 与NX接线如下 VCC 5V GND GND SDA 3 S
  • 43.一维卷积-航空公司评论情感预测

    之前我们使用的都是二维卷积 xff0c 二维卷积处理图像问题 xff0c 这次我们使用一维卷积 xff0c 一维卷积处理序列问题 一维卷积就是在一个序列上进行滑动 xff0c 从而得出一维卷积的结果 xff0c 详细一维卷积的介绍可以看一下
  • serial库常见用法

    安装的时候要输入 pip install pyserial 进行安装 serial是python做串口通讯的库 xff0c 在这里介绍了NX与Windows串口通讯 NX串口通讯windows Suyuoa的博客 CSDN博客 目录 1 使
  • Ubuntu开机自启动一些东西

    有三种方式做开机自启动 目录 1 免除sudo密码 2 Startup 2 desktop 3 service 1 免除sudo密码 做完这一步你的所有sudo命令都不会再让你输密码了 如果你的开机自启动的东西需要sudo xff0c 那么
  • 附录3-动态组件 component与keep-alive setup()写法

    目录 1 基本使用 2 按钮切换组件 3 keep alive 3 1 在切换组件的时候 xff0c 默认情况下被切换的组件就会被销毁 3 1 1 数据情况 3 1 2 生命周期函数情况 3 2 使用 keep alive 3 3 keep
  • 附录11-插件ESLint与prettier

    ESLint是提示错误的 xff0c prettier是帮你解决错误的 目录 1 ESLint 1 1 安装 1 2 配置 1 3 效果 2 prettier 1 ESLint 1 1 安装 1 2 配置 在插件介绍中 xff0c 搜索 e
  • 用 C 语言编写 Windows 服务程序

    NTService cpp Defines the entry point for the console application include lt windows h gt include lt stdio h gt define S
  • 10.过滤器

    过滤器是做文本格式化的 xff0c 只能用在 插值表达式 与 v bind 上 xff0c 在vue3中已经被弃用了 xff0c 这里我简单记录一下并写一下在vue3的替代方法 目录 1 基本使用 1 1 vue2中的写法 1 2 vue3
  • 24.eslint

    eslint是约束代码写法的插件 xff0c 比如组件的命名必须要用驼峰命名这种 eslint官网 检测并修复 JavaScript 代码中的问题 ESLint 插件化的 JavaScript 代码检查工具 目录 1 vue cli的esl
  • CocoaPods的使用——pod install pod install --repo-update pod update pod update --repo-update

    Podfile文件中 xff0c 使用某个库时 不指定版本 xff0c 表示希望使用最新版本 xff0c 如 pod SDWebImage 指定明确版本 xff0c 表示只想要这个版本 xff0c 如 xff1a pod 39 SDWebI
  • SceneDelegate有什么作用?删除有什么影响

    自从Xcode11发布以来 xff0c 当你使用新XCode创建一个新的iOS项目时 xff0c SceneDelegate会被默认创建 xff0c 它到底有什么用呢 xff1f 在iOS 13 xff08 及以后版本 xff09 上 xf