Полагаю, вы хотели бы отследить, нажата ли кнопка бара или нет.Сам UIBarButton не имеет такого свойства, как isSelected.Но вы можете создать UIBarButtonItem и установить для пользовательского представления значение UIButton.
override func viewDidLoad() {
super.viewDidLoad()
let btnCustom = UIButton(type: .custom)
btnCustom.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
btnCustom.addTarget(self, action: #selector(tappedBarButton(sender:)), for: .touchUpInside)
btnCustom.setImage(UIImage(named:"normalImage"), for: .normal)
btnCustom.setImage(UIImage(named:"selectedImage"), for: .selected)
btnCustom.imageEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5)
let barBtnItem = UIBarButtonItem(customView: btnCustom)
navigationItem.leftBarButtonItem = barBtnItem
}
@objc func tappedBarButton(sender: Any) {
if let btnCustom = sender as? UIButton {
btnCustom.isSelected = true // or as per your logic
}
}