2017-04-21 5 views
0

Ich versuche, den Titel zu vergleichen, den ich in einer Schaltfläche habe, so dass, wenn es mit einem anderen verglichen wird, es eine bestimmte Sache tut oder nicht. Ich verwende die .setTitle-Funktion, aber ich denke in swift3 gibt es Fehler und ich kann das Warum nicht finden. Dann hinterlasse ich einen Haken des Fehlers, um es einfacher zu machen, und auch den Code selbst zu sehen. Danke für die HilfeButton.titleLabel Fehler in swift3

enter image description here

@IBAction func _login_button(_ sender: Any) 
{ 
    if(_login_button.titleLabel?.text == "OKEY") 
    { 
     let preferences = UserDefaults.standard 
     preferences.removeObject(forKey: "session") 

     LoginToDo() 
     return 
    } 

    let username = _username.text 
    let password = _password.text 

    if(username == "" || password == "") 
    { 
     return 
    } 

    DoLogin(username!, password!) 
} 
+0

Es ist wegen der 'sender' Sie in der Aktion verwenden. Es sollte "UIButton" anstelle von "Any" sein. –

+0

Bitte überprüfen Sie, was IBOutlets und IBActions bedeuten, Sie werden falsch damit beschäftigt. –

Antwort

3

Änderung Ihrer @IBAction func _login_button(_ sender: Any) zu Sie Guss von Any to UIButton eingeben müssen@IBAction func _login_button(_ sender: UIButton)

@IBAction func _login_button(_ sender: UIButton) 
     { 
     if(sender.titleLabel?.text == "OKEY") 
     { 
    } 
} 
0

Sie müssen wie unten-Taste, um zu bekommen, jetzt Sie Zugriff Funktionsnamen statt Absender

@IBAction func _login_button(_ sender: Any) 
     let button: UIButton = sender as! UIButton 


     if(button.titleLabel?.text == "OKEY") 
     { 
    } 
} 
+0

@IBAction func _login_button (_ Absender: Any) { if ((Absender als ANYOBJECT) .titleLabel ?? Text == "OKEY".) { let preferences = UserDefaults.standard preferences.removeObject (forKey: „Sitzung“) LoginToDo() return } –

+0

Swift korrigiert, was Sie mir geschrieben haben, und sagt mir, es so zu setzen, okay? –

+0

Warum haben Sie zu viel Code genommen, ich optimierte Ihre Antwort, –

0

_login_button ist @IBAction Sie auf die Schaltfläche erstellen müssen für @IBOutlet der Schaltfläche

0

Wenn Sie diesen Fehler wie pro Screenshot erhalten, müssen Sie Cast von Any to UIButton eingeben und dann titleLabel -Eigenschaft verwenden.