gpt4 book ai didi

swift - UISceneDelegate 和 UIApplicationDelegate 的 "didBecomeActive"和 "willResignActive"方法对之间的区别?

转载 作者:行者123 更新时间:2023-11-30 10:32:40 26 4
gpt4 key购买 nike

我的主要任务是在应用程序进入后台时将屏幕与非透明 View 重叠以隐藏信息。官方解决方案描述here .

问题是它有时无法在 iOS 13 上运行。

我找到了这个article :

它解释了 sceneDidBecomeActive(_:)sceneWillResignActive(_:) 的工作原理。但新项目有 AppDelegate+SceneDelegate,旧项目只有 AppDelegate。我可以只使用 applicationDidBecomeActive(_:)applicationWillResignActive(_:) 吗?或者我应该以某种方式迁移项目以使用 UISceneDelegate (iOS 12 及更早版本不支持)?

最佳答案

如果您有一个在 Xcode 11 之前创建的应用程序,那么它不支持场景。只要您不添加与场景相关的任何内容(Apple 将来可能会禁止),那么您的应用程序的生命周期将继续在 iOS 13 下工作,就像在 iOS 12 及更早版本下一样。只需继续使用 UIApplicationDelegate 方法即可。

<小时/>

如果您有支持 iOS 12 和 iOS 13 的应用,并且正在使用 iOS 13 中的场景,则必须同时实现 applicationWillResignActive (支持 iOS 12 及更早版本)和 sceneWillResignActive(支持 iOS 13 及更高版本)。

事实上,在同时支持 iOS 12 和 13 的应用中,您基本上需要实现两组 UIApplicationDelegateUISceneDelegate/UIWindowSceneDelegate 方法。当您的应用在 iOS 12 或更早版本的设备上运行时,将调用 UIApplicationDelegate 方法;当您的应用在 iOS 12 或更早版本的设备上运行时,将调用 UISceneDelegate/UIWindowSceneDelegate 方法iOS 13 或更高版本。

请记住,在 iOS 13 下,如果您支持多个窗口/场景,则场景委托(delegate)方法将与特定场景关联。

关于swift - UISceneDelegate 和 UIApplicationDelegate 的 "didBecomeActive"和 "willResignActive"方法对之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803630/

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