Невозможно присоединить существующий метод к UIButton - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь создать макет приложения, но я не могу заставить UIB-кнопку подключиться к действию, которое должно быть выполнено, когда я щелкаю по нему. Я не уверен, почему он не может найти метод, имена совпадают, и добавление в (_:) к #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 ]

1 голос
/ 10 июля 2019
loginButton!.addTarget(self, action: #selector(onLoginButtonPress(sender:)), for: .touchUpInside)

отредактируйте этот код строки, это должно работать для вас. Лучше не использовать принудительное развертывание , поэтому избегайте его использования.

1 голос
/ 10 июля 2019

Вы пытались удалить скобки из "onLoginButtonPress"?Я не думаю, что они нужны.

loginButton!.addTarget(self, action: #selector("onLoginButtonPress"), for: .touchUpInside)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...