SSJB's blog

いろいろです。

UINavigationBar の UINavigationItem のタイトルと画像を切り替える

よくある、UINavigationBar の UINavigationItem のタイトルと画像を切り替える方法のメモ。
UIImageView を配置して、表示・非表示の切り替えを無理矢理やっていましたが、普通にできました…

import UIKit

class viewController: UIViewController {

    @IBOutlet weak var navItem: UINavigationItem!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.setLogo()
        // self.setTitle(title: "Title")
    }


    /**
      Set the logo image
    */
   func setLogo() {
        if let image: UIImage = UIImage(named: "logo") {
            let logoImageView: UIImageView = UIImageView(image: image)
            self.navItem.titleView = logoImageView
        }
    }


    /**
      Set the title
    */
   func setTitle(title: String) {
        self.navItem.titleView = nil
        self.navItem.title = title
    }

}

適当なタイミングで呼び出します。
UINavigationItem に titleView を設定した後、普通の title に戻したい場合は、titleView に nil を渡します。
特に難しいことはなく、知っておくべきことでした…