Моя цель для приложения - iOS 10.0. Как только я меняю свою цель, я получаю кучу ошибок в файле SceneDelegate. Для обратной совместимости я добавил «@available (iOS 13.0, *)» для класса делегата сцены.
Я начал с OnboardingController. Который полностью запрограммирован c. Поэтому я удалил MainStoryboard и удалил его из «Основного интерфейса» и «Манифеста сцены приложения» в информации.
Теперь я должен установить rootView в AppDelegate и SceneDelegate. Если я не установил окно в SceneDelegate, я получаю только черный экран на устройствах iOS 13.0+ и, если я не устанавливаю в AppDelegate, я получаю только черный экран на устройствах <13.0 <strong>, так как я вызываю оба файла 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()
}
...
}
Я что-то упустил?