首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIScene的概念还不清楚

UIScene的概念还不清楚
EN

Stack Overflow用户
提问于 2020-05-07 04:03:15
回答 2查看 2.9K关注 0票数 19

在我们习惯AppDelegate中的方法之前,我们先创建UIWindow,然后为这个Window设置rootViewController。有时,当我们需要一个自定义警报时,我们可以创建一个新的UIWindow,它将位于上面。

现在,Xcode会自动创建UIScene,并在这个场景上创建UIWindow。如果有人能详细解释如何在现实生活中使用这个场景,以及在AppDelegate中使用AppDelegate的主要好处是什么,我将不胜感激。

因为这个文章解释不了多少

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-17 06:54:56

文献资料

您应该从Apple而不是UIScene文档中阅读UIScene

解释

就像它说的关于场景

场景,同时管理应用程序UI的多个实例,并将资源定向到适当的UI实例。

在iOS 13之前,我们只有一个场景,所以我们需要同时运行ViewControllers的唯一东西是相互之间的多个Window。但是现在,每个应用程序可以有多个同时运行的实例!每个场景都有自己的状态,可能在前台,而其他的处于后台或挂起的,而Window完全依赖于应用程序本身。

假设我们有两个视图控制器(考虑没有场景)运行在设备的左边和右边,然后我们需要显示一个横幅。使用旧的窗口方法将在两个窗口上显示横幅!如果您需要选择一个,您可能最终会找到正确的控制器并在上面展示横幅(我认为我们都是在熟悉UIWindow之前就这样做的)

因此,苹果引入了Scene,这是该应用程序的每个单独实例的容器。因此,您可以分别管理每一个,其中每一个作为一个单独的应用程序。它有自己的windowcontroller,但它们都是由单个对象UIApplication.shared管理的,它有一个delegate来处理一般事件(通常来自应用程序之外)和整个应用程序生命周期。

票数 10
EN

Stack Overflow用户

发布于 2020-05-14 09:04:13

最大的问题是场景设置了多个窗口支持(目前只能在iPadOS和macOS上使用)。它对于在SwiftUI上安装iOS也很有用。

SceneDelegate控制屏幕上显示的内容,“在应用程序用户界面的一个实例中管理生命周期事件”,而AppDelegate控制整个应用程序生命周期。

您还会注意到,keyWindow不再存在于iOS中。iOS很可能会支持多个窗口,但这是目前的猜测。

希望这能澄清一些事情,并让你了解为什么苹果会更新这个实现。

本文提供了一些关于SceneDelegate的更多数据,您可能会发现这些数据是有用的:https://www.donnywals.com/understanding-the-ios-13-scene-delegate/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61649700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档