首页 > 解决方案 > 为什么不调用 didDiscardSceneSessions ?

问题描述

我有一个仅限 iOS 13 的应用程序。我需要在didDiscardSceneSessions. 我的理解是,您通过输入应用程序公开并在场景上向上滑动以使其消失来“丢弃”场景。

func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions:
    Set<UISceneSession>) {
    print("❗️didDiscardSceneSessions")
}

当我向这个函数添加断点或打印命令时,它永远不会被调用。上面是一个例子。

根据文件...

当用户从应用切换器中移除场景时,UIKit 在完全丢弃场景的关联会话对象之前调用此方法。(UIKit 也调用这个方法来丢弃它不能再显示的场景。)如果你的应用没有运行,UIKit 会在你的应用下一次启动时调用这个方法。

我似乎根本无法触发此方法。我正在使用物理 iPad 作为我的测试设备。


更新

我做了更多的修改,结果证明sceneDidDisconnect在关闭窗口后也没有调用。


我在一个新的单视图应用程序中做了一些测试。我放了一个断点didDiscardSceneSessions,它起作用了。然后我将 info.plist 中的“启用多个窗口”设置为“是”,它停止工作。是什么赋予了?

标签: iosswiftuikit

解决方案


推荐阅读