やりたいこと
下のスクリーンショットにあるようにNavigationBarにメニューを示すアイコンを表示したい
やり方
- IoniconsSwiftを使ってアイコン画像をロード
- ロードした画像を使ってUIBarButtonItemインスタンスを作成
- インスタンスをnavigationItemにsetLeftBarButtonItemsしてやるだけ
実際のコード
override func viewDidLoad() {
super.viewDidLoad()
// NavigationBarの高さ × 0.8にアイコンのサイズを指定する
let barHeight : Int = Int((self.navigationController?.navigationBar.frame.size.height)! * 0.8)
// Ioniconよりメニューアイコン画像をロード
let menuIcon = UIImage.imageWithIonicon(ionicon.AndroidMenu, color: UIColor.black, iconSize: CGFloat(barHeight), imageSize: CGSize(width: barHeight, height: barHeight))
// アイコン画像からUIBarButtonItemを生成
let leftNavEditButtonItem = UIBarButtonItem(image: menuIcon, style: .plain, target: self, action: #selector(MyViewController.doSomething))
// UIBarButtonItemをセット
self.navigationItem.setLeftBarButtonItems([leftNavEditButtonItem], animated: true)
}