Swift - экземпляр контроллера представления в AppDelegate - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь, чтобы моя страница входа всплывала на начальном контроллере представления из AppDelegate.swift, и я использую
let authVC = storybaord.instantiateViewController(withIdentifier: "StartVC")
для его создания.Однако View Controller связан с контроллером навигации, который, когда я использую код, вылетает из приложения, когда я нажимаю кнопку View Controller.Код:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    FirebaseApp.configure()

    if Auth.auth().currentUser == nil {
        let storybaord = UIStoryboard(name: "Main", bundle: Bundle.main)
        let authVC = storybaord.instantiateViewController(withIdentifier: "StartVC")
        window?.makeKeyAndVisible()
        window?.rootViewController?.present(authVC, animated: false, completion: nil)
    }
    return true
}

В файле Main.Storyboard у меня есть идентификатор раскадровки ("StartVC") на первом контроллере представления контроллера навигации.Снимки экрана: http://prntscr.com/lp8fez |http://prntscr.com/lp8flq

Вот журнал аварии: Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'toName'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.

1 Ответ

0 голосов
/ 01 декабря 2018
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
if Auth.auth().currentUser == nil {
    let storybaord = UIStoryboard(name: "Main", bundle: Bundle.main)
    let authVC = storybaord.instantiateViewController(withIdentifier: "StartVC")


    window?.rootViewController?= authVC

                 window?.makeKeyAndVisible()
}
return true
}

Я использовал этот код, и он работает для меня.Попробуйте и дайте мне знать, если потребуется дополнительная помощь.

...