简体   繁体   English

Swift 3 无法识别的选择器发送到实例 UIButton

[英]Swift 3 Unrecognized selector sent to instance UIButton

I get this error:我收到此错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITouchesEvent text]: unrecognized selector sent to instance 0x6100000e9400'由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UITouchesEvent text]:无法识别的选择器发送到实例 0x6100000e9400”

The button it crashes on:它崩溃的按钮:

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 Button@1x"), 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
    }
}

I have another button for signing up with Facebook and it works fine... I think it's something to do with parameters in the function createAccountTapped but I don't know what's wrong.我有另一个用于注册 Facebook 的按钮,它工作正常...我认为这与函数createAccountTapped参数有关,但我不知createAccountTapped什么问题。

You can not pass UITextField instance with UIButton action, you can set only these action createAccountTapped() and createAccountTapped(_ sender: UIButton) with UIButton .你不可错过UITextField与实例UIButton行动,你可以设置只有这些动作createAccountTapped()createAccountTapped(_ sender: UIButton)UIButton

If you want to access textField in your UIButton action then you need to create IBOutlet for that textField in your RegisterViewController .如果您想在UIButton操作中访问textField ,则需要在RegisterViewController为该textField创建IBOutlet

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM