[英]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.