【Swift】NavigationBarにBarButtonを追加
どうも、ねこきち(@nekokichi1_yos2)です。
NavigationBarにBarButtonを追加します。
解説
UIBarButtonを代入し、
- title(ボタンの文字)
- style(ボタンの種類)
- target(処理の対象?)
- action(ボタン押下時の処理)
を設定します。
styleには、
- plain
- done
の2種類があり、役割が違うそうです。
let leftback = UIBarButtonItem(title: "キャンセル", style: .plain, target: self, action: #selector(back))
(参考)
ボタンの追加は、ViewControllerに組み込まれているNavigationControllerのBarButton(右か左)を指定し、先ほど作ったボタンを代入します。
self.navigationItem.leftBarButtonItem = leftback
ただし、右と左の両方にBarButtonを設置する場合、注意点があります。
1つのBarButtonで右と左の位置に配置すると、最後に指定した方だけに配置されてしまいます。
let leftback = UIBarButtonItem(title: "キャンセル", style: .plain, target: self, action: #selector(back)) self.navigationItem.leftBarButtonItem = leftback self.navigationItem.rightBarButtonItem = leftback
なので、右と左にBarButtonを配置するなら、2個作りましょう。
結果
ソースコード
import UIKit class navigation: UIViewController { override func viewDidLoad() { super.viewDidLoad()
//ボタンを生成 let leftback = UIBarButtonItem(title: "キャンセル", style: .plain, target: self, action: #selector(back)) let rightback = UIBarButtonItem(title: "キャンセル", style: .plain, target: self, action: #selector(back)) //ボタンを追加 self.navigationItem.leftBarButtonItem = leftback self.navigationItem.rightBarButtonItem = rightback } @objc func back() { self.navigationController?.popViewController(animated: true) } }