Ios 如何在成功登录后显示不同的ViewController
我使用Firebase作为后端,并对登录部分进行了编码。当我使用测试帐户登录时,调试器会打印“登录:。但是,当我尝试转到主视图控制器时,会出现错误”致命错误:在展开可选值时意外地发现“nil”“代码在self.presentviewcontroller行中断。这里出了什么问题Ios 如何在成功登录后显示不同的ViewController,ios,swift2,xcode7,segue,viewcontroller,Ios,Swift2,Xcode7,Segue,Viewcontroller,我使用Firebase作为后端,并对登录部分进行了编码。当我使用测试帐户登录时,调试器会打印“登录:。但是,当我尝试转到主视图控制器时,会出现错误”致命错误:在展开可选值时意外地发现“nil”“代码在self.presentviewcontroller行中断。这里出了什么问题 if email != "" && password != "" { FIREBASE_REF.authUser(email, password: password, withCo
if email != "" && password != ""
{
FIREBASE_REF.authUser(email, password: password, withCompletionBlock: {(error, FAuthData) -> Void in
if error == nil
{
NSUserDefaults.standardUserDefaults().setValue(FAuthData.uid, forKey: "uid")
print("logged in")
self.logoutButton.hidden = false
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let secondViewController = storyboard.instantiateViewControllerWithIdentifier("ViewController") as! ViewController
self.presentViewController(secondViewController, animated: true, completion: nil)
}
else{
print("The user was not logged in")
}
})
}
else{
let alert = UIAlertController(title: "ERROR", message: "Please Enter Email and Password", preferredStyle: .Alert)
let action = UIAlertAction(title: "OK", style: .Default, handler: nil)
alert.addAction(action)
self.presentViewController(alert, animated: true, completion: nil)
}
在主情节提要上检查是否将标识符
ViewController
设置为ViewController。您需要使用该方法,该方法实时侦听已验证的状态
override func viewDidAppear() {
let ref = Firebase(url: "https://<YOUR-FIREBASE-APP>.firebaseio.com")
ref.observeAuthEventWithBlock({ authData in
if authData != nil {
// user authenticated
print(authData)
self.performSegueWithIdentifier("LoginToOtherView", sender: nil)
} else {
// No user is signed in
}
})
}
override func viewdide()出现{
let ref=Firebase(url:https://.firebaseio.com")
ref.observeAuthEventWithBlock({authData in
如果authData!=nil{
//用户认证
打印(authData)
self.performsguewithidentifier(“logintotherview”,发件人:nil)
}否则{
//没有用户登录
}
})
}
您收听的是viewdide
,因此即使您进入导航堆栈,它也会继续激发