Swift 对<;开始/结束外观转换的调用不平衡;UINavigationController:0x161044c00>;

Swift 对<;开始/结束外观转换的调用不平衡;UINavigationController:0x161044c00>;,swift,xcode,firebase,Swift,Xcode,Firebase,我试图在启动时根据用户是否已登录来更改rootview 对于用户身份验证,我正在使用Firebase,当用户第一次启动应用程序时,我需要应用程序通过编程将rootviewcontroller设置为WelcomeViewController,如果登录,我需要它是ContactsViewController 我已经通过在我的SceneDelegate上实现下面的来解决这个问题,但是我需要将navigationcontroller添加到我的ContactsViewController中,因为每当应用程

我试图在启动时根据用户是否已登录来更改rootview

对于用户身份验证,我正在使用Firebase,当用户第一次启动应用程序时,我需要应用程序通过编程将rootviewcontroller设置为WelcomeViewController,如果登录,我需要它是ContactsViewController

我已经通过在我的SceneDelegate上实现下面的来解决这个问题,但是我需要将navigationcontroller添加到我的ContactsViewController中,因为每当应用程序将根视图更改为Contacts时,它都会丢失

然而,我现在收到了下面的错误,在阅读了一些旧的答案和文章后,我仍然不知道如何解决这个问题

错误是

对开始/结束外观转换的不平衡调用

SceneDelegate中的代码:

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    handle = Auth.auth().addStateDidChangeListener { (auth, user) in
        let home = UIStoryboard(name: "Main", bundle: nil)
        if user != nil {
            print("User logged in")
            let vc = home.instantiateViewController(identifier: "ContactsViewController")
            self.window?.rootViewController = UINavigationController(rootViewController: vc)
        } else {
            print("Not Logged in")
            let vc = home.instantiateViewController(identifier: "WelcomeViewController")
            self.window?.rootViewController = UINavigationController(rootViewController: vc)
        }
    }
    guard let _ = (scene as? UIWindowScene) else { return }
}
ContactsViewController中的代码将再次实现navigationcontroller。它也嵌入在故事板中,但当rootview以编程方式设置时,它不可见,因此下面的代码

    override func viewDidLoad() {
    super.viewDidLoad()
    guard let navBar = navigationController?.navigationBar else {
        fatalError("Navigation Controller does not exist")
        
    }
    let navBarAppearance = UINavigationBarAppearance()
    navBar.backgroundColor = UIColor(named: "greenSea")
    navBarAppearance.backgroundColor = UIColor(named: "greenSea")
    navBar.standardAppearance = navBarAppearance
    navBar.scrollEdgeAppearance = navBarAppearance
    navigationItem.hidesBackButton = true
    
    contactsView.dataSource = self
    contactsView.register(UINib(nibName: M.General.contactCell, bundle: nil), forCellReuseIdentifier: M.General.contactCell)
}
我将非常感谢在这方面的任何指导或帮助

谢谢大家!