我目前正在使用Xcode 11 Beta 5,在我的应用程序中,它在iOS 12和更低版本上运行良好。然而,在iOS 13上,它看起来是默认使用UIScene的。这导致我的应用程序什么都不做。
当应用程序在新安装启动时,用户必须接受一些条款和条件。在同意之后,他们进入一个加载屏幕,然后引导他们到主视图。在我发布的截图中,前景中当前屏幕后面的视图是。
我们将考虑在整个应用程序中添加多视图场景支持,但现在我们有更高优先级的工作需要处理。

“支持多个窗口”已经在应用程序目标的一般设置中被禁用。此外,我还在info.plist文件中将多个Windows设置为NO。
到目前为止,一切都不起作用。基本上,我希望选择退出/禁用多个窗口和UIScene/SwiftUI,以恢复iOS 10-12中的原始行为。这在iOS 13中是可能的还是我们必须更新它?
更新:
以下是视图调试层次结构的屏幕截图。左边是iOS 12,右边是iOS 13。不向Info.plist添加任何内容,也不添加任何场景委托类或方法,为什么会有所不同?差不多就是在Xcode 11上的现有生产准备代码中运行它。

发布于 2019-08-12 19:34:45
当您的应用程序在运行于 13或更高版本时,应该支持使用场景,但是您可以在仍然支持iOS 12或更高版本时完全退出。
var window: UIWindow?添加到应用程序委托中。您的应用程序现在应该只使用应用程序委托,在iOS 13下,它应该具有与iOS 12相同的生命周期。
注意:,这些都不是Swift或SwiftUI特有的。
发布于 2019-08-12 19:34:23
这也是我面临的问题,这里有几个场景:
SceneDelegate文件,也没有对AppDelegate或故事板进行任何更改。UIKIT 13的新应用程序,只需创建它,同时确保不选中"Use SwiftUI“复选框。但我想知道你是否面临着第三种情况--一周前我就做过了。创建一个新的“`UIKit应用程序”,目标是比iOS 13更早的东西。(实际上我的目标是iOS 9!)
是的,您的模板将给您带来15个错误(从beta 5开始),以及一个SceneDelegate文件/类。幸运的是,Xcode将帮助您自动更正除一个以外的所有内容。
最后一条是添加一行,这是SceneDelegate类的一部分,但遗憾的是,苹果把它排除在了AppDelegate类之外--在超过十几条@available(iOS 13.0, *)条款之后,这意味着如果运行iOS 12,您已经选择退出SceneDelegate,你猜怎么着?那是,不是,在ApDelegate!
将此添加到您的AppDelegate中:
var window: UIWindow?此时,您应该有一个针对iOS 12和更早版本的正在运行的iOS应用程序。
发布于 2020-03-28 22:30:36
我用dfd的答案来解决这个问题,但是由于我的应用程序在目标C中,所以我不得不做一个改变:
在目标C中,你想把
@property (strong, nonatomic) UIWindow *window;在AppDelegate.h中(不在.m中)
https://stackoverflow.com/questions/57467003
复制相似问题