gpt4 book ai didi

swift - 在 iOS 上选择退出 UISceneDelegate/SwiftUI

转载 作者:行者123 更新时间:2023-11-29 05:22:44 27 4
gpt4 key购买 nike

我目前正在使用 Xcode 11 Beta 5。在我的应用程序中,它在 iOS 12 及更低版本上运行良好。但是,在 iOS 13 上,它看起来默认使用 UIScene。这导致我的应用程序不执行任何操作。

当应用全新安装时启动时,用户必须接受条款和条件。同意后,他们会进入加载屏幕,然后引导他们进入主视图。在我发布的屏幕截图中,前景当前 View 后面的 View 是启动加载屏幕。

我们很快就会考虑在整个应用程序中添加多 View 场景支持,但现在我们需要处理更高优先级的事情。

“支持多个窗口”已在应用目标的常规设置中禁用。另外,我在 info.plist 文件中将“启用多个窗口”设置为“否”。

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

更新:

这是 View 调试层次结构的屏幕截图。左侧是 iOS 12,右侧是 iOS 13。没有向 Info.plist 添加任何内容,也没有添加任何场景委托(delegate)类或方法,为什么会有所不同?几乎只是在 Xcode 11 上现有的生产就绪代码中运行它。

最佳答案

虽然当您的应用在 iOS 13 及更高版本下运行时,您应该拥抱使用场景,但您可以在仍然支持 iOS 12 或更早版本时完全选择退出。

  • 从 Info.plist 中完全删除“Application Scene Manifest”条目。

  • 如果存在场景委托(delegate)类,请将其删除。

  • 如果您的应用委托(delegate)中有任何与场景相关的方法,请删除这些方法。

  • 如果缺少,请将属性 var window: UIWindow? 添加到您的应用委托(delegate)中。

您的应用现在应该只使用应用委托(delegate),并且在 iOS 13 下它应该具有与 iOS 12 相同的生命周期。

注意:这些都不是特定于 Swift 或 SwiftUI 的。

关于swift - 在 iOS 上选择退出 UISceneDelegate/SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58506542/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com