Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用户登录后清除密码文本字段_Ios_Swift_Login_Firebase Authentication_Uitextfield - Fatal编程技术网

Ios 用户登录后清除密码文本字段

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!")

如果用户登录,然后立即退出,则密码文本字段仍填充有其密码。但是为了安全起见,我想让他们重新输入密码。我正在使用firebase身份验证

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()
中调用它时,它会按预期工作。