Ios 由于未捕获异常而终止应用程序

Ios 由于未捕获异常而终止应用程序,ios,swift,xcode,Ios,Swift,Xcode,我目前正在进行登录验证,并在firebase注册。我现在想让我的用户保持登录,这是可行的。我面临的问题是,当我注销时,我尝试重新登录,但收到以下错误: //由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“Receiver()没有标识符为“chatRoom”的segue”\ 这没有意义,因为当我第一次登录时,它会使用聊天室segue将我带到聊天室Viewcontroller 下面是我的代码: func handleLogin() {

我目前正在进行登录验证,并在firebase注册。我现在想让我的用户保持登录,这是可行的。我面临的问题是,当我注销时,我尝试重新登录,但收到以下错误: //由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“Receiver()没有标识符为“chatRoom”的segue”\ 这没有意义,因为当我第一次登录时,它会使用聊天室segue将我带到聊天室Viewcontroller

下面是我的代码:

 func handleLogin() {
        guard let email = emailTextField.text, let password = passwordTextField.text
            else {
            print("Form is not valid")
            return
        }
        Auth.auth().signIn(withEmail: email, password: password, completion: { (user, error) in

            if error != nil {
                print(error!.localizedDescription)
                self.loginErrorAlert("Error!", message: "Username or password incorrect, please try again.")
                return
            }
            // successfully logged in our user and keep user logged in until they logout
            if Auth.auth().currentUser != nil {
                UserDefaults.standard.set(Auth.auth().currentUser!.uid, forKey: "loggedIn")
                UserDefaults.standard.synchronize()
             self.performSegue(withIdentifier: "chatRoom", sender: self)// this is the error I am facing
            }
        })
    }
    func handleRegister() {
        guard let email = emailTextField.text, let password = passwordTextField.text, let name = nameTextField.text else {
            print("Form is not valid")
            signupErrorAlert("Error!", message: "Could not be Registered at this time, please try again.")
            return
        }
        Auth.auth().createUser(withEmail: email, password: password, completion: { (user: User?, error) in

            if error != nil {
                print(error!.localizedDescription)
                self.loginErrorAlert("Error!", message: "Could not be Registered at this time, please try again later.")
                return
            }

            guard let uid = user?.uid else {
                return
            }
            // successfully authenticated user and keep logged in until they logout
            let ref = Database.database().reference(fromURL: "https://boccighub.firebaseio.com/")
            let usersReference = ref.child("users").child(uid)
            let values = ["name": name, "email": email]
            usersReference.updateChildValues(values, withCompletionBlock: { (err, ref) in

                if err != nil {
                    print(err!.localizedDescription)
                    return
                }
                if Auth.auth().currentUser != nil {
                    UserDefaults.standard.set(Auth.auth().currentUser!.uid, forKey: "loggedIn")
                    UserDefaults.standard.synchronize()
                    self.performSegue(withIdentifier: "chatRoom", sender: self)
                }
            })
        })
    }
    // User logged out
    @IBAction func handleLogout(_ sender: Any) {
        do {
            try Auth.auth().signOut()
            print("user signedout")

            if Auth.auth().currentUser == nil {
                print("No user, key removed")
                UserDefaults.standard.removeObject(forKey: "loggedIn")
                UserDefaults.standard.synchronize()
                print("User logged out")
                let loginController = LoginViewController()
                present(loginController, animated: true, completion: nil)
            }
        } catch let logoutError {
            print(logoutError)
        }
    }

固定的。我删除了let loginController=LoginViewController(),
我创建了一个新的segue,现在做self.performSegue(带有标识符:“logOut”,发件人:self)工作正常

您的问题与您的title@J.Doe这样更好吗?你的错误与注销和Firebase无关。你的标题很容易引起误解。这个错误可能是有道理的,因为当你注销时,你会让loginController=LoginViewController(),然后出现(…),而你不会调用故事板中带有
segue
LoginViewController
。嗯,它“可能有意义”,但它缺少来自哪个类的信息,这些代码等等@Larme ok你想让我上传我的loginViewController吗?