我有一个快速3,xcode 8,ios10,Firebase开发。项目并尝试构建登录/创建用户流程。我有三个观点 -
当应用程序加载时,我检查用户是否在Mainview中的“viewDidAppear”登录,如果不是,我打开LoginView。如果用户从视图2转到视图3 - createuserview并创建一个useraccount,我就不能解除(关闭)视图2并获取视图1中的“viewDidAppear”以触发并检查用户是否已登录。
创建了useraccount并正确登录但我无法忽略视图2和3并打开视图1(Mainview)。如果主视图打开,视图必须检查用户是否已登录,而不是打开视图2(登录)agin,这可能很难与异步。编程。
感谢您的帮助,我真的被困在这里。视图1中的一些代码 -
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
print("*** viewDidAppear ***")
if FIRAuth.auth()?.currentUser != nil {
print("CHECK - USER LOGGED IN")
} else {
print("CHECK - USER LOGGED OUT")
self.performSegue(withIdentifier: "segueLogin", sender: nil)
return
}
}
答案 0 :(得分:1)
在View 3中成功创建新用户后:Createuserview触发委托方法以返回View 2
protocol NewUserCreatedSuccessProtocol {
func userCreatedSuccessAndReturn(user : FirebaseUser)
}
class CreateUserview {
var delegate : NewUserCreatedSuccessProtocol! = nil
func handleSignUp() {
if delegate != nil {
self.dismiss(animated: true, completion: nil)
self.delegate.userCreatedSuccessAndReturn(user: Insert())
}
}
}
extension LoginView : NewUserCreatedSuccessProtocol {
func userCreatedSuccessAndReturn(user : FirebaseUser) {
self.dismiss(animated: true, completion: nil)
}
}
这样,您可以在成功创建新用户时忽略这两个视图。您也可以在解雇之前显示警报。
希望这会有所帮助!!