Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS navigationItem.RightBarButtonim未响应其选择器_Ios_Swift_Uinavigationcontroller_Uinavigationbar_Uinavigationitem - Fatal编程技术网

iOS navigationItem.RightBarButtonim未响应其选择器

iOS navigationItem.RightBarButtonim未响应其选择器,ios,swift,uinavigationcontroller,uinavigationbar,uinavigationitem,Ios,Swift,Uinavigationcontroller,Uinavigationbar,Uinavigationitem,我从a继承了一个超类a和一个子类B。我想表示B。在类a中添加navigationItem.RightBarButtonim时,选择器没有响应其选择器 class A: UIViewController { var saveNaviBtn: UIBarButtonItem = UIBarButtonItem(title: "save", style: .done, target: self, action: #selector(save)) @objc func save() {

我从a继承了一个超类a和一个子类B。我想表示B。在类a中添加navigationItem.RightBarButtonim时,选择器没有响应其选择器

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 {

}

我认为出于某种原因,当Barbuttonite初始化时,它的目标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
    }
}

试着像你说的那样,你想在A班上展示B。但我看到你的代码是“驳回”。为什么?