I have a super class A and a subclassb B inherited from A. I wanna present B. When add navigationItem.rightBarButtonItem in class A , the selector did not response to its selector.
class A: UIViewController {
var saveNaviBtn: UIBarButtonItem = UIBarButtonItem(title: "save", style: .done, target: self, action: #selector(save))
@objc func save() {
dismiss(animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.rightBarButtonItem = saveNaviBtn
}
}
class B: A {
}
I think for some reason when the barButtonItem init, it's target self
might not be finish inited. Do in this way:
class A: UIViewController {
var saveNaviBtn: UIBarButtonItem?
override func viewDidLoad() {
saveNaviBtn = UIBarButtonItem(title: "save", style: .done, target: self, action: #selector(save))
self.navigationItem.rightBarButtonItem = saveNaviBtn
}
}