2017-01-07 2 views
-4

Я получаю эту ошибку:Swift 3 Непризнанные селектор направил к экземпляру UIButton

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITouchesEvent text]: unrecognized selector sent to instance 0x6100000e9400'

Кнопка она падает на:

import UIKit 
import Firebase 
import FBSDKLoginKit 

class RegisterViewController: UIViewController, FBSDKLoginButtonDelegate, UITextFieldDelegate { 

    override func viewDidLoad() { 
    super.viewDidLoad() 
     // Create Sign Up button 
     let signUpButton: UIButton = { 
      let button = UIButton() 
      button.setImage(#imageLiteral(resourceName: "Go [email protected]"), for: .normal) 
      button.addTarget(self, action: #selector(createAccountTapped), for: .touchUpInside) // when tapped on Sign In button, execute function SignInTapped 
      button.translatesAutoresizingMaskIntoConstraints = false 
      return button 
      }() 
     func signUpButtonView() { 
      signUpButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
      signUpButton.heightAnchor.constraint(equalToConstant: 70).isActive = true 
      signUpButton.widthAnchor.constraint(equalTo: view.widthAnchor, constant: 0).isActive = true 
      signUpButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true 
     } 

     self.view.addSubview(signUpButton) 
     signUpButtonView() 

    } 

    func createAccountTapped(_ usernameTextField: UITextField, passwordTextField: UITextField, repeatPasswordTextField: UITextField) { 
     let username = usernameTextField.text 
     let password = passwordTextField.text 
     let repeatPassword = repeatPasswordTextField.text 
    } 
} 

У меня есть другая кнопка для подписания с Facebook и она отлично работает. .. Я думаю, что это что-то связано с параметрами в функции createAccountTapped, но я не знаю, что случилось.

+0

«createAccountTapped» не является IBAction. Какой метод подключен к нажатой кнопке или нажатой кнопке? ... – sanman

+1

@sanman Если вы прочитали его код, вы бы знали, что он добавил цель к своей кнопке. –

+0

@BenjaminLowry мой плохой. Я думал, что Мартинас подключил кнопку к этой функции, что невозможно. – sanman

ответ

3

Вы не можете пройти UITextField экземпляр с UIButton действия, вы можете установить только эти действия createAccountTapped() и createAccountTapped(_ sender: UIButton)UIButton с.

Если вы хотите получить доступ к textField в вашем UIButton действия, то вам нужно создать IBOutlet для этого textField в вашем RegisterViewController.

+0

Как передать константы, которые мне нужно использовать в функции? – Martynas

+0

@Martynas Вы не можете передавать другой экземпляр вместо 'UIButton' с его действием. Прочтите мой ответ еще раз. –

+0

@Martynas Возможно, вы захотите рассмотреть возможность использования их в качестве переменных экземпляра. –

Смежные вопросы