iOS 12/13 Создание программного представления - PullRequest
1 голос
/ 09 октября 2019

Мои приложения не используют раскадровки. Все представления создаются программно.

Исторически я удалил свой Main.storyboard, удалил ссылку из моего Info.plist и настроил мои UIWindow и rootViewController следующим образом:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        let window = UIWindow(frame: UIScreen.main.bounds)
        window.rootViewController = UIViewController()
        window.makeKeyAndVisible()

        self.window = window

        return true
    }

Однако при попытке запустить мое приложение в iOS 13 происходит сбой -

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle NSBundle </Users/Dev/Library/Developer/CoreSimulator/Devices/8A4474B1-FCA3-4720-8F34-A6975A03EE19/data/Containers/Bundle/Application/258FA246-A283-4FE6-A075-58BD32424427/Home.app> (loaded)'
***

iOS 12 по-прежнему работает, как и ожидалось. Как мне настроить мой вид программно для поддержки iOS 12 и 13?

1 Ответ

0 голосов
/ 09 октября 2019

Вам также необходимо добавить обновление SceneDelegate.swift.

Обновить func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) и добавить

        guard let windowScene = (scene as? UIWindowScene) else { return }
        let window = UIWindow(windowScene: windowScene)

        let viewController = ViewController()
        window.rootViewController = viewController
        window.makeKeyAndVisible()

        self.window = window
...