我已经为登录按钮操作创建了这个逻辑。如果用户已登录并将sender.tag设置为loginButtonTag = 1,我的问题是它不会在“else if sender.tag == loginButtonTag”中运行此代码。
@IBAction func signedInAction(sender: AnyObject)
{
if (txtfUsername.text == "" || txtfPassword.text == "") {
alert()
return;
}
txtfUsername.resignFirstResponder()
txtfPassword.resignFirstResponder()
if sender.tag == createLoginButtonTag {
let hasLoginKey = NSUserDefaults.standardUserDefaults().boolForKey("hasLoginKey")
if hasLoginKey == false { NSUserDefaults.standardUserDefaults().setValue(self.txtfUsername.text, forKey: "username")
}
keychain.set(txtfUsername.text!, forKey:kSecValueData as String)
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "hasLoginKey")
NSUserDefaults.standardUserDefaults().synchronize()
loginButton.tag = 1
performSegueWithIdentifier("dismissLogin", sender: self)
}
else if sender.tag == loginButtonTag
{
if checkLogin(txtfUsername.text!, password: txtfPassword.text!)
{
performSegueWithIdentifier("dismissLogin", sender: self)
}
else
{
alert()
}
}
}
最佳答案
请检查以下声明:
- loginButtonTag 确实具有“1”值
- 检查在您的 vc 生命周期中,任何方法都不会更改您的登录按钮的标签。
- 检查登录按钮的 socket 连接 - 它可能为零,因此未设置标签。
此代码段不起作用的原因有很多。
更新:
如果您使用相同的按钮,请尝试
sender.tag = loginButtonTag
而不是
loginButton.tag = 1
希望这有帮助。
关于ios - 如果用户在钥匙串(keychain)中登录,则 sender.tag 不设置为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484546/