我正在尝试制作一个模拟应用程序,但是我似乎无法让UIButton挂接到我单击它时应该执行的动作。
我不确定为什么找不到该方法,它们的名称相同,并且在(_:)
中添加#selector
并没有任何作用。
import UIKit
class LoginViewController: UIViewController {
var loginButton: UIButton?
@objc func onLoginButtonPress(sender: UIButton!) {
print("Login Button Press")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
setup()
}
func setup() -> Void {
initLoginButton()
self.view.backgroundColor = .green
}
func initLoginButton() -> Void {
let loginButtonBounds = CGRect(x: 100, y: 100, width: 250, height: 250)
loginButton = UIButton(frame: loginButtonBounds)
loginButton!.backgroundColor = .red
loginButton!.setTitle("Login", for: .normal)
loginButton!.addTarget(self, action: #selector("onLoginButtonPress"), for: .touchUpInside)
self.view.addSubview(loginButton!)
}
答案 0 :(得分:1)
您是否尝试过从“ onLoginButtonPress”中删除括号?我认为它们不是必需的。
loginButton!.addTarget(self, action: #selector("onLoginButtonPress"), for: .touchUpInside)
答案 1 :(得分:1)
name
修改此行代码,这应该对您有用。最好不要使用强制展开,因此请避免使用它。