2016-05-27 5 views
0

私はログインボタンaction.myのためにこのロジックを作成しました。ユーザがログインしてsender.tagをloginButtonTag = 1に設定すると、 "else if sender.tag == loginButtonTag"にこのコードは実行されません。ユーザーがキーチェーンにログインしている場合、sender.tagがnoに設定されていますか?

@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() 
     } 
    } 
} 
+0

2つのケースで同じボタンを使用しましたか?私は正しい? – Doro

+0

はい、私は同じボタンを使用します。 – NinjaDeveloper

答えて

0

次の文を確認してください:

  1. loginButtonTagは本当にあなたのVCのライフサイクル中にいずれかの方法は、あなたのloginButtonのタグを変更しないことを '1' 値
  2. チェックしています。
  3. loginButtonのコンセント接続を確認してください - これはnilになる可能性があります。したがって、タグは設定されていません。

このスニペットがうまくいかない理由はたくさんあります。

UPDATE:

あなたは同じボタンを使用している場合、代わりに

loginButton.tag = 1 

sender.tag = loginButtonTag

を試すには、この情報がお役に立てば幸いです。

0

送信者がanyObjectではなくUIButtonのタイプであることを確認してください。

@IBAction func signedInAction(sender: UIButton!) 
関連する問題