Почему я не вижу экран запуска (заставки) при изменении Root View в swift5? - PullRequest
0 голосов
/ 07 октября 2019

Проблема, с которой я столкнулся, состоит в том, чтобы удалить корневую стрелку на раскадровке и настроить корневое представление в файле AppDelegate для динамического изменения RootView.

Нет проблем с перемещением корневого представления, но существующее splashScreen(Launch Screen) не отображается. Почему ты не видишь это? Как я могу увидеть splashScreen(Launch Screen) и перейти к корневому виду?

Main.Storyboard

Main

Login.Storyboard,

enter image description here

Launch.Storyboard

enter image description here

Переместить корневой экран в AppDelegate.swift

var window: UIWindow?

    func switchStartUI() {
        let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = mainStoryboard.instantiateViewController(withIdentifier: "StartViewController")
        self.window?.rootViewController = viewController
    }

    func switchToMainUI() {
        let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = mainStoryboard.instantiateViewController(withIdentifier: "NavigationController")
        self.window?.rootViewController = viewController
    }

    func switchLoginUI(_ pushtype : String) {
        let loginStoryboard = UIStoryboard(name: "Login", bundle: nil)
        let viewController = loginStoryboard.instantiateViewController(withIdentifier: "MainLoginController") as! MainLoginController
        viewController.pushType = pushtype
        self.window?.rootViewController = viewController
    }

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        self.window = UIWindow(frame: UIScreen.main.bounds)
      if let screenData : String = LocalStorage.get("ScreenView") as? String {
            switch (screenData) {
            case "success":
                switchToMainUI()
            case "success1":
                switchLoginUI("")
            case "success2":
                switchLoginUI("")
            default:
                switchStartUI()
            }
        } else {
            switchStartUI()
        }

        self.window?.makeKeyAndVisible()

        return true
    }

Я хочу увидеть заставку и перейти к корневому представлению

На моем заставке уже есть изображение. Работало нормально. Но я не вижу заставку после динамического изменения корневого представления. Я такой же

Я вижу только черный экран. при удалении двух функций

self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.makeKeyAndVisible()

Для меня появляется белый экран и затем я перехожу на страницу просмотра корня.

Я не знаю, почему не вижу заставку.

Как я могу решить эту проблему ??

Заранее спасибо

1 Ответ

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

Это было простое решение. Launch. Добавлена ​​корневая стрелка к «Раскадровке».

enter image description here

...