PR
検証環境
- Xcode 12.2
- Swift 5.3.1
NavigationBarにUIButtonを設定する
storyboard上ではなく、コードで設定していく方法。
// UIBarButtonItemのオブジェクトを作成
let navButton = UIBarButtonItem()
// 画像の設定
navButton.image = nil
// ボタンタイトルの設定
navButton.title = "ボタンタイトル"
// ボタン押されたときに呼ぶ関数を設定
navButton.target = self
navButton.action = #selector(tapSettingButton(sender:))
// 必要に応じてボタンのattributesを設定
navButton.setTitleTextAttributes([.font: UIFont.navBarButtonFont()], for: .normal)
// 作成したUIBarButtonItemオブジェクトを、navigationItemのrightに設定
navigationItem.rightBarButtonItem = navButton
// ボタンがタップされた時の関数を設定
@objc func tapSettingButton(sender: UIButton) {
// 処理
}
もしくは
navigationItem.rightBarButtonItem = UIBarButtonItem(
title: "ボタンタイトル",
style: .plain,
target: self,
action: #selector(tapSettingButton(sender:))
)
このような形で、UIBarButtonItemオブジェクトを作成するときに、一度に指定することも可能。
storyboardでボタンを配置して設定することも出来ますが、storyboardはあとから設定が見ずらいので、できればコードで指定しておきたい。
PR
PR