我目前正在使用Xcode 11 Beta 5.在我的应用程序中,它在iOS 12及以下版本上运行良好.然而,在iOS 13上,它似乎默认使用UIScene.这导致我的应用程序无法执行任何操作.

当应用程序以全新安装方式启动时,用户必须接受一个条款和条件.同意后,他们进入加载屏幕,然后 bootstrap 他们进入主视图.在我发布的屏幕截图中,前景中当前屏幕后面的视图是启动加载屏幕.

我们将很快在整个应用程序中添加多视图场景支持,但现在我们有更高优先级的东西需要处理.

在应用程序目标的常规设置中,"支持多个窗口"已被禁用.此外,我已在信息中将"启用多个窗口"设置为"否".plist文件.

到目前为止,一切都没有真正起作用.基本上,我想退出/禁用多个windows和UIScene/SwiftUI,以恢复iOS 10-12中的原始行为.这在iOS 13中是可能的还是我们必须更新它?

更新:

下面是视图调试层次 struct 的屏幕截图.左边是iOS 12,右边是iOS 13.没有添加任何信息.plist也没有任何场景委托类或方法,为什么会有所不同?基本上只是在Xcode 11上的现有生产就绪代码中运行它.

推荐答案

当你的应用程序在iOS 13及更高版本下运行时,你可以 Select 使用should个场景,但当你仍然支持iOS 12或更低版本时,你可以完全退出.

  • 从信息中完全删除"应用程序场景 list "条目.普利斯特.

  • 如果存在场景代理类,请将其删除.

  • 如果应用程序委托中存在任何与场景相关的方法,请删除这些方法.

  • 如果缺少,请将属性var window: UIWindow?添加到应用程序代理中.

你的应用现在应该只使用app delegate,在iOS 13下,它的生命周期应该与iOS 12相同.

Note:这些都不是Swift或SwiftUI特有的.

Swift相关问答推荐

在swift静态var扩展中,如何或可以访问和返回具体类?

不使用`lockFocus`将两个重叠的NSImage转换为单个NSImage

相互取消任务

无论玩家移动到视图内的哪个位置,如何使用 SpriteKit 让敌人向玩家emits 子弹?

根据其属性组合 2 个模型以在 Swift 中创建另一个模型

PassthroughSubject 的 AsyncPublisher 值属性未生成所有值

在 Swift 中增量写入大型文本文件的最佳方法

SwiftUI - Select 器没有 Select 值

如何获得不同的插入和移除过渡动画?

将数据附加到 Firebase 实时数据库后,NavigationLink 将我重定向到上一个视图

将阻塞函数集成到 Swift 异步中

`IndexSet` 永远不会是空的?

macOS 守护进程应该由Command Line ToolXcode 模板制作吗?

为 UIActivityViewController Swift 设置不同的活动项

如何在 iOS Swift 中进行多线程、并发或并行?

Swift 中 NSFetchRequest 的多个 NSPredicates?

如何快速截取 UIView 的屏幕截图?

如何快速将弹出框调整为表格视图中内容的大小?

如何快速从另一个视图控制器重新加载表格视图

如何在 Swift 中从字符串创建类的实例