Comment utiliser addTarget méthode swift 3

voici mon button objet

    let loginRegisterButton:UIButton = {
    let button = UIButton(type: .system)
    button.backgroundColor = UIColor(r: 50 , g: 80, b: 130)
    button.setTitle("Register", for: .normal)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.setTitleColor(.white, for: .normal)
    button.addTarget(self, action:#selector(handleRegister), for: .touchUpInside)
    return button
}()

et voici ma fonction

    func handleRegister(){

    FIRAuth.auth()?.createUser(withEmail: email, password: password,completion: { (user, error) in

        if error != nil
        { print("Error Occured")}

        else
        {print("Successfully Authenticated")}
    })        
}

J'obtiens le message d'erreur de compilation, si addTarget retiré, il compile correctement

  • Essayez cette button.addTarget(self, action:#selector(handleRegister()), for: .touchUpInside).
  • handleRegister l'action sont dans le même contrôleur? Aussi, vous havn't définir le cadre de UIButton.
  • oui, j'ai une autre fonction de ses contraintes func contraintes() {loginRegisterButton.centerXAnchor.contrainte(equalTo: inputview.centerXAnchor).est actif = true loginRegisterButton.topAnchor.contrainte(equalTo: inputview.bottomAnchor, une constante: 12).est actif = true loginRegisterButton.widthAnchor.contrainte(equalTo: inputview.widthAnchor).est actif = true loginRegisterButton.heightAnchor.contrainte(equalToConstant: 30).est actif = true }
  • Puis le problème est peut-être avec votre bouton de contraintes essayer de mettre juste l'image une fois et vérifier qu'il fonctionne ou pas.
  • j'ai modifié le code comme ceci et il a travaillé paresseux var loginRegisterButton:UIButton = { laisser bouton = UIButton(type: .système de bouton.backgroundColor = UIColor(r: 50 , g: 80, b: 130) bouton.setTitle("Enregistrer", pour: .normale) bouton.translatesAutoresizingMaskIntoConstraints = false bouton.setTitleColor(.blanc, pour: .normale) bouton.addTarget(auto, action:#sélecteur(handleRegister), pour: .touchUpInside) bouton de retour }()
InformationsquelleAutor Ninja13 | 2016-09-21