[XCODE] ナビゲーションボタンをサブビューから追加する
こんにちは、@yoheiMuneです。
今日は、またニッチなネタかも。。
ナビゲーションビューから呼び出された子ビューから、親ビューであるナビゲーションビューのナビゲーションバーにボタンを追加する方法を学んだので、ブログに残しておきたいと思います。
子ビューから親のナビゲーションビューのナビゲーションバーにボタンを追加する
iPhoneアプリケーションにおいて、ナビゲーションビューを使う事も多いかと思います。
ナビゲーションビューから呼び出された子ビューにおいて、親のナビゲーションバーにボタンを追加したいと思った時に、以下のような実装を子ビューでする事で、ボタンを追加することが出来るようです。
- (void)viewDidLoad { [super viewDidLoad]; // OKという文字が表示されたボタンを追加する // UIBarButtonItemのインスタンス作成時に、ボタン押下時に呼び出すメソッドを指定する UIBarButtonItem *okButton = [[UIBarButtonItem alloc] initWithTitle:@"OK" style:UIBarButtonItemStylePlain target:self action:@selector(okAction:)]; // 親NavigationViewControllerのナビゲーションバーにボタンを追加する self.navigationItem.rightBarButtonItem = okButton; [okButton release]; }
ここでは、「self.navigationItem」というUIViewControllerのフィールドがポイントです。
navigationItemは、”UIViewController Class Reference”では以下のように説明されています。
This is a unique instance of UINavigationItem created to represent the view controller when it is pushed onto a navigation bar. The first time you access this property, the UINavigationItem is created.
NavigationItem オブジェクトは、View Controllerが表示されるときにNavigation Barに表示されるオブジェクトを提供します。このオブジェクトを使用して、ビューにカスタムタイトルや追加のコントロールを提供できます。
そして今回は、NavigationItemオブジェクトのrightBarButtonプロパティに、独自に作成したOKボタンを追加するように実装しました。
最後に
iPhoneアプリケーションでは、絶対に使うViewControllerですが、知らない機能がいっぱいですね(*´∇`*)もっとガイドも読んで、勉強しよっと。