Swift NavigationControllerのnavigationItemを追加、変更する


backitemの変更

遷移先ではなく遷移元で設定する必要がある。

遷移元のViewController

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.backBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: nil, action: nil)
}

とすることで、遷移先のbackBarButtonItemが変更される。

右itemの追加

こちらは遷移先で定義する。複数のitemを指定したい時は[UIBarButtonItem]の配列を渡す。

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.rightBarButtonItem = [UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneAction))]
}

@objc func doneAction(){
    //doAction
}