Ios 用户登录后清除密码文本字段
如果用户登录,然后立即退出,则密码文本字段仍填充有其密码。但是为了安全起见,我想让他们重新输入密码。我正在使用firebase身份验证Ios 用户登录后清除密码文本字段,ios,swift,login,firebase-authentication,uitextfield,Ios,Swift,Login,Firebase Authentication,Uitextfield,如果用户登录,然后立即退出,则密码文本字段仍填充有其密码。但是为了安全起见,我想让他们重新输入密码。我正在使用firebase身份验证 Auth.auth().signIn(withEmail: emailTF.text!, password: passwordTF.text!) { (user, error) in if error == nil && user != nil { print("Successful Login!")
Auth.auth().signIn(withEmail: emailTF.text!, password: passwordTF.text!) { (user, error) in
if error == nil && user != nil {
print("Successful Login!")
self.passwordTF.text = nil
} else {
print("Error logging in: \(error!.localizedDescription)")
}
这就是我到目前为止所做的,它清空了文本字段,但有一个问题。有一个函数可以检查用户名或密码文本字段是否为空。如果其中一个是,它将禁用“登录”按钮。通过这种清空文本字段的方法,禁用登录按钮的功能不再起作用。用户注销后,密码文本字段为空,但登录按钮已启用,但不应启用
@objc func editingChanged() {
if emailTF.text!.isEmpty || passwordTF.text!.isEmpty {
loginButton.isEnabled = false
loginButton.alpha = 0.5
//print("Email and password fields NOT FILLED in")
} else {
loginButton.alpha = 1
loginButton.isEnabled = true
//print("Email and password field FILLED in")
}
}
换行
self.passwordTF.text = ""
避免在代码中强制展开变量总是值得的,如下所示:
@objc func editingChanged() {
guard let email = emailTF.text, let password = passwordTF.text else {
return
}
if email.isEmpty || password.isEmpty {
//rest of your code
}
并确保在
viewdide()中调用editingChanged()
对可选项的检查显然是有意义的,但是当我注销并返回到登录屏幕时,登录按钮仍然处于启用状态,即使密码字段为空。这就像视图回到堆栈顶部后,由于某种原因不会重新加载。有什么想法吗?@cabyambo您确定在加载或显示视图时正在调用editingChanged()
?你每次回去都得打电话谢谢!我只是在编辑文本字段时才调用它,但在viewdideappease()
中调用它时,它会按预期工作。