我创建了此右栏按钮项目,但是当按下时什么也没有发生。 #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
}
答案 0 :(得分:1)
执行代码时,实例的其余部分可能尚未初始化。您是否尝试过在viewDidLoad
中这样做?如果没有,请尝试这样做:
override func viewDidLoad() {
super.viewDidLoad()
configureYourBarButtonHere()
}
我记得在这个解决方案中,有很多问题突出了这个问题。这是我现在可以找到的几个:
答案 1 :(得分:1)
尝试
button.setTitleColor(UIColor.gray, for: .normal)
代替
button.setTitleColor(.bandzBlue(), for: .normal)
和UIButton(type: .system)