![[iOS 8] ナビゲーションバーのタイトルタップを検知する](https://devio2023-media.developers.io/wp-content/uploads/2014/06/ios81.png)
[iOS 8] ナビゲーションバーのタイトルタップを検知する
2014.09.24
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ナビゲーションバーのタイトルタップを検知する
情報があまりなかったので共有。
ハマりポイントは以下のとおり。
- UILabel の userInteractionEnabled はデフォルト false
 
サンプルコード
// タイトルを表示するラベルを作成 let label = UILabel() label.text = "Title" label.sizeToFit() // タップジェスチャーを設定 let gestureRecognizer = UITapGestureRecognizer(target: self, action: "tapped:") label.addGestureRecognizer(gestureRecognizer) // チクショー label.userInteractionEnabled = true // ナビゲーションバーの titleView に上で作成したラベルを設定 navigationItem.titleView = label
タイトルタップ時に呼ばれるメソッド
func tapped(tapGestureRecognizer: UITapGestureRecognizer) {
    println("tapped.")
}
まとめ
ナビゲーションバー自体にタップジェスチャーを設定することもできますが、それだと「戻る」ボタンを押してもジェスチャーで設定しているアクションが優先されるので、こちらのほうがいいと思います。
フォントなどは適宜調整してください。










