【问题标题】:How to launch multiple instances of a scene on iPhone with iOS 13?如何使用 iOS 13 在 iPhone 上启动场景的多个实例?
【发布时间】:2020-01-13 22:27:24
【问题描述】:
苹果开发者文档提到在 iOS 13 上可以使用多个场景实例(即 iPhone 和 iPad)
来自他们的开发者文档:
在 iOS 13 及更高版本中,用户可以同时创建和管理应用用户界面的多个实例,并使用应用切换器在它们之间切换。在 iPad 上,用户还可以并排显示您的应用程序的多个实例。 UI 的每个实例都显示不同的内容,或者以不同的方式显示相同的内容。例如,用户可以显示一个日历应用实例来显示特定的一天,而另一个则显示整个月份。
我已经在 iPadOS 上尝试过,我能够使用他们的 WWDC 视频中提到的手势和 UI 动作创建多个场景实例,但我没有找到任何关于如何在 iPhone 上实现这一点的参考资料,这对知道如何实现这一点或是否可能。
【问题讨论】:
标签:
ios
ios13
uiscenedelegate
【解决方案1】:
由于使用了“iOS”一词,您引用的文档具有误导性。
在 iOS 13 中为应用创建多个场景的能力实际上仅限于 iPad 和 iPadOS。在 iOS 中,您不能在 iPhone 上创建多个应用场景。
使用UIApplication.sharedApplication.supportsMultipleScenes (Objective-C) / UIApplication.shared.supportsMultipleScenes (Swift) 检查当前设备是否支持多场景。你会发现这在 iPhone 上返回 NO/false,在 iPad 上返回 YES/true。
该检查对于启用/禁用使用拖放创建NSUserActivity 或导致使用UIApplication requestSceneSessionActivation 的UI 组件的能力很有用。