我的主要任务是将屏幕与非透明视图重叠起来,以便在应用程序进入后台时隐藏信息。官方解决方案被描述为这里。
问题是它有时在iOS 13上不起作用。
我找到了这个文章
它解释了sceneDidBecomeActive(_:)和sceneWillResignActive(_:)是如何工作的。但是新的项目有AppDelegate+SceneDelegate,旧的只有AppDelegate。我能用一下applicationDidBecomeActive(_:)和applicationWillResignActive(_:)吗?或者,我是否应该以某种方式将项目迁移到使用UISceneDelegate ( iOS 12和更早版本中不支持)?
发布于 2019-11-11 16:18:35
如果你有一个在Xcode 11之前创建的应用程序,那么它不支持场景。只要你不添加任何与场景相关的内容(未来苹果可能会不允许),你的应用程序的生命周期就会继续在iOS 13下工作,就像在iOS 12和更早版本下一样。只需继续使用UIApplicationDelegate方法即可。
如果您有一个支持iOS 12和iOS 13的应用程序,并且正在使用iOS 13中的场景,那么您必须同时实现applicationWillResignActive (支持iOS 12及更早版本)和sceneWillResignActive (支持iOS 13及更高版本)。
实际上,在支持iOS 12和13的应用程序中,基本上需要实现UIApplicationDelegate和UISceneDelegate/UIWindowSceneDelegate两组方法。当应用程序运行在具有UIApplicationDelegate 12或更高版本的设备上时,将调用iOS方法,而当应用程序运行在具有iOS 13或更高版本的设备上时,将调用UISceneDelegate/UIWindowSceneDelegate方法。
请记住,在iOS 13下,如果您支持多个窗口/场景,则场景委托方法与特定场景相关联。
https://stackoverflow.com/questions/58803630
复制相似问题