Моя цель для приложения - iOS 10.0. Как только я меняю цель, я получаю кучу ошибок в файле SceneDelegate. Для обратной совместимости я добавил «@available (iOS 13.0, *)» для класса делегата сцены.
Я начал с OnboardingController. Что полностью программно. Поэтому я удалил MainStoryboard и удалил его из «Main Interface» и «Application Scene Manifest» в info.
Теперь мне нужно установить rootView как в AppDelegate, так и в SceneDelegate. Если я не устанавливаю окно в SceneDelegate, я получаю только черный экран на устройствах iOS 13.0+, а если я не устанавливаю в AppDelegate, я получаю только черный экран на ‹13.0 устройствах Поскольку я вызываю оба файла, мой viewdidload ( ) в Viewcontroller вызывается дважды.
Вот что мой AppDelegate
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "navC") as! UINavigationController
window?.rootViewController = viewController
window?.makeKeyAndVisible()
return true
}
}
Ниже мой SceneDelegate
@available(iOS 13.0, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeCollectionVC") as! HomeCollectionVC
window?.rootViewController = viewController
window?.makeKeyAndVisible()
}
...
}
я что-то упускаю?