iOS 13
Только если цель 13 или больше.
SceneDelegateне поддерживается до iOS 13 . Если вы хотите использовать, SceneDelegateа также хотите поддерживать iOS до iOS 13, то вам необходимо добавить некоторые изменения в ваш проект.
- Добавьте атрибут доступности ко всему классу в файле SceneDelegate.swift .
@available(iOS 13.0, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
...
}
- В файле AppDelegate.swift появилось два новых
SceneDelegateметода. Добавьте к ним атрибут доступности.
@available(iOS 13.0, *)
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
...
}
@available(iOS 13.0, *)
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
...
}
- Наконец, добавьте
UIWindowобъект в AppDelegate.swift .
class AppDelegate: UIResponder, UIApplicationDelegate {
//Add this line
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
...
}
iOS 12 и более ранние
AppDelegateнужна UIWindowсобственность. iOS 13 использует SceneDelegateв новых проектах. Укажите UIWindowобъект и удалите файл SceneDelegate.swift .
Если вы удалили SceneDelegateиз проекта, то вы должны удалить словарь манифеста сцены приложения из Info.plist .
