iOS navigationItem.rightBarButtonItem не ответил на свой селектор

У меня есть суперкласс A и подкласс B, унаследованный от A. Я хочу представить B. При добавлении navigationItem.rightBarButtonItem в класс A селектор не ответил на свой селектор.

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 {

}

person Dean Lee    schedule 23.05.2018    source источник
comment
Попробуйте что-то вроде это   -  person Mannopson    schedule 23.05.2018
comment
Вы сказали, что хотите представить B в классе A. Но я вижу, что ваш код уволен. Почему?   -  person seyha    schedule 23.05.2018


Ответы (1)


Я думаю, что по какой-то причине, когда barButtonItem инициализируется, его цель self может быть не завершена. Делайте таким образом:

class A: UIViewController {
    var saveNaviBtn: UIBarButtonItem?

    override func viewDidLoad() {
        saveNaviBtn = UIBarButtonItem(title: "save", style: .done, target: self,      action: #selector(save))
        self.navigationItem.rightBarButtonItem = saveNaviBtn
    }
}
person William Hu    schedule 23.05.2018