Swift 对<;开始/结束外观转换的调用不平衡;UINavigationController:0x161044c00>;
我试图在启动时根据用户是否已登录来更改rootview 对于用户身份验证,我正在使用Firebase,当用户第一次启动应用程序时,我需要应用程序通过编程将rootviewcontroller设置为WelcomeViewController,如果登录,我需要它是ContactsViewController 我已经通过在我的SceneDelegate上实现下面的来解决这个问题,但是我需要将navigationcontroller添加到我的ContactsViewController中,因为每当应用程序将根视图更改为Contacts时,它都会丢失 然而,我现在收到了下面的错误,在阅读了一些旧的答案和文章后,我仍然不知道如何解决这个问题 错误是 对开始/结束外观转换的不平衡调用 SceneDelegate中的代码:Swift 对<;开始/结束外观转换的调用不平衡;UINavigationController:0x161044c00>;,swift,xcode,firebase,Swift,Xcode,Firebase,我试图在启动时根据用户是否已登录来更改rootview 对于用户身份验证,我正在使用Firebase,当用户第一次启动应用程序时,我需要应用程序通过编程将rootviewcontroller设置为WelcomeViewController,如果登录,我需要它是ContactsViewController 我已经通过在我的SceneDelegate上实现下面的来解决这个问题,但是我需要将navigationcontroller添加到我的ContactsViewController中,因为每当应用程
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)
}
我将非常感谢在这方面的任何指导或帮助
谢谢大家!