UIBarButtonItem used to add or customize elements in UINavigationBar.
Class hierarchy of UIBarButtonItem
NSObject
↑
UIBarItem
↑
UIBarButtonItem
AppleDeveloperリファレンスUIBarButtonItem
UIBarButtonItem example sentence
Generate a UINavigationBar and put a title and button on it.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//画面横サイズを取得
let viewWidth = self.view.frame.width
//UINavigationBarを作成
let myNavBar = UINavigationBar()
//UINavigationBarの位置とサイズを指定
myNavBar.frame = CGRect(x: 0, y: 22, width: viewWidth, height: 40)
//ナビゲーションバーの色を変える
myNavBar.barTintColor = UIColor.gray
//ナビゲーションボタンの色を変更する
//UINavigationBar.appearance().tintColor = UIColor.black
//曇りガラスの効果を消す
myNavBar.isTranslucent = false
//ナビゲーションアイテムを作成
let myNavItems = UINavigationItem()
myNavItems.title = "バーのタイトル"
//バーの左側に設置するボタンの作成
let leftNavBtn = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(leftBarBtnClicked(sender:)))
myNavItems.leftBarButtonItem = leftNavBtn
//バーの右側に設置するボタンの作成
let rightNavBtn = UIBarButtonItem()
//ボタンにする画像を選択する
let rightNavBtnImg:UIImage = UIImage(named:"swiftIcon_40")!
rightNavBtn.image = rightNavBtnImg
//ボタンが押され時のアクションを設定する
rightNavBtn.action = #selector(rightBarBtnClicked(sender:))
myNavItems.rightBarButtonItem = rightNavBtn;
//作成したNavItemをNavBarに追加する
myNavBar.pushItem(myNavItems, animated: true)
self.view.addSubview(myNavBar)
}
//左側のボタンが押されたら呼ばれる
internal func leftBarBtnClicked(sender: UIButton){
print("leftBarBtnClicked")
}
//右側のボタンが押されたら呼ばれる
internal func rightBarBtnClicked(sender: UIButton){
print("rightBarBtnClicked")
}
}
Changing the color of UIBarButtonItem
UIBarButtonItem is blue by default, but the color can be specified in the following way.
Change color of Back button in navigation bar
//ナビゲーションボタンの色を変更する
UINavigationBar.appearance().tintColor = UIColor.black
UIBarButtonSystemItem
UIBarButtonSystemItemを用いることで、デフォルトに入っているボタンを使用することができます。
https://developer.apple.com/reference/uikit/uibarbuttonsystemitem
//barButtonSystemItem:に [.add]を設定することで[+]ボタンを設定する,上のコード参照
let leftNavBtn = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(leftBarBtnClicked(sender:)))
Add
Done
Cancel
Edit
Save
Compose
Reply
Action
Organize
Bookmarks
Search
Refresh
Stop
Camera
Trash
Play
Pause
Rewind
Undo
Redo
PageCurl