iOS: добавление SwiftUI в проект - некорректная загрузка сцены - PullRequest
0 голосов
/ 18 июня 2019

Я работаю на Catalina Beta 2 и использую Xcode 11 Beta 2. Я создал и создал шаблон проекта SwiftUI по умолчанию, и он отлично загружается. Затем я открыл небольшой проект, который я создал в Xcode 10, используя раскадровки и скопировал и скопировал настройки из шаблона проекта Apple.

Все выглядит одинаково в приложении, Info.plist, настройках, делегате приложения, делегате сцены и т. Д., И я много раз просматривал его, пытаясь понять, что не так.

Вот мой текущий делегат приложения:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

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

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        let config = UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
        return config // <<<<< Breakpoint !!!!
    }

    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
    }
}

В шаблонном проекте Apple это работает, а в моем - нет.

Остановившись на моей точке останова, я вижу, что connectingSceneSession и загруженная конфигурация проигнорировали детали сцены в Info.plist. Вместо этого создается конфигурация по умолчанию с делегатом нулевой сцены и ролью внешнего дисплея.

Действительно странная вещь в том, что если я выполню:

po UISceneConfiguration(name: "Default Configuration", sessionRole: .applicationWindow)

В консоли отладки она загружает сцену из Info.plist именно так, как я и ожидал.

Суть проблемы, по-видимому, заключается в том, что приложение не работает, см. Определение сцены в Info.plist и вместо этого возвращается новая сцена внешнего дисплея. Даже после того, как я попытался заменить приложение Info.plist на приложение из примера Apple.

Кто-нибудь понял, что может происходить?

1 Ответ

0 голосов
/ 19 июня 2019

Нашел это.

Это не было ни настройкой, ни фрагментом кода, ни производными данными.Дело в том, что на симуляторе было приложение pre-SwiftUI.Как только я сбросил симулятор, все стало работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...