UIBarButtonItem的#selector函数在按下时不会触发

时间:2019-07-18 02:50:26

标签: ios swift selector uibarbuttonitem

我创建了此右栏按钮项目,但是当按下时什么也没有发生。 #selector没有触发,我知道@objc函数有效。

let button = UIButton(type: .custom)
    button.setTitle("Uncheck All", for: .normal)
    button.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .semibold)
    button.setTitleColor(.bandzBlue(), for: .normal)
    button.layer.cornerRadius = 5
    button.backgroundColor = .white
    button.frame = CGRect(x: 0, y: 0, width: 92, height: 14)
    button.addTarget(self, action: #selector(self.addTapped), for: .touchUpInside)
    let barButton = UIBarButtonItem(customView: button)
    self.navigationItem.rightBarButtonItem = barButton
    @objc func addTapped() {
        stuff that works fine
    }

2 个答案:

答案 0 :(得分:1)

执行代码时,实例的其余部分可能尚未初始化。您是否尝试过在viewDidLoad中这样做?如果没有,请尝试这样做:

override func viewDidLoad() {
    super.viewDidLoad()

    configureYourBarButtonHere()
}

我记得在这个解决方案中,有很多问题突出了这个问题。这是我现在可以找到的几个:

UIBarButtonItem selector not working

https://stackoverflow.com/a/49283627/9293498

答案 1 :(得分:1)

尝试

 button.setTitleColor(UIColor.gray, for: .normal)

代替

button.setTitleColor(.bandzBlue(), for: .normal)

UIButton(type: .system)