无法将现有方法附加到UIButton

时间:2019-07-10 03:22:13

标签: swift

我正在尝试制作一个模拟应用程序,但是我似乎无法让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!)
    }

2 个答案:

答案 0 :(得分:1)

您是否尝试过从“ onLoginButtonPress”中删除括号?我认为它们不是必需的。

loginButton!.addTarget(self, action: #selector("onLoginButtonPress"), for: .touchUpInside)

答案 1 :(得分:1)

name

修改此行代码,这应该对您有用。最好不要使用强制展开,因此请避免使用它。