以前大家都习惯的做法,当AppDelegate
我们创建UIWindow
,然后设置rootViewController
为这个Window
。有时,当我们需要自定义警报时,我们可以UIWindow
在上方创建一个新警报。
现在,Xcode会自动在此场景上创建UIScene
和创建UIWindow
。我将不胜感激,如果有人能详细解释如何在现实生活中使用这个场景,什么是他们的主要受益于仅使用UIWindow
在AppDelegate
因为这篇文章解释不多
您应该阅读Apple的App and Environment文章,而不是文档。UIScene
正如关于场景的说法:
场景,同时管理应用程序UI的多个实例,并将资源定向到适当的UI实例。
在iOS 13之前,我们只有一个场景,所以我们需要ViewController
同时运行s 的唯一一件事就是多个Window
s相互叠加。但是现在,每个应用程序可以同时运行多个实例!每个场景都有其自己的状态,它可能在前台,而其他场景在后台或被挂起,而Window
这完全取决于应用程序本身。
假设我们在设备的左侧和右侧运行了2个视图控制器(考虑到没有场景),然后我们需要显示横幅。使用旧的window方法将在它们两个上都显示横幅!而且,如果您需要选择一个,您可能最终会找到正确的控制器并在其上展示横幅,(我想我们所有人在熟悉此方法之前都已经采用了这种方法UIWindow
)
因此,Apple引入了Scene
,为应用程序的每个单独实例提供了一个容器。因此,您可以分别管理每个应用程序,每个应用程序都像一个单独的应用程序。它有自己的window
s和controller
s。但是所有这些都由单个对象管理,UIApplication.shared
并且具有delegate
处理一般事件(通常从应用程序外部)和整个应用程序生命周期的功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句