2012/07/06更新

[XCODE] ナビゲーションボタンをサブビューから追加する

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。

今日は、またニッチなネタかも。。

ナビゲーションビューから呼び出された子ビューから、親ビューであるナビゲーションビューのナビゲーションバーにボタンを追加する方法を学んだので、ブログに残しておきたいと思います。

f:id:yoheiM:20110720120612j:image




子ビューから親のナビゲーションビューのナビゲーションバーにボタンを追加する

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ですが、知らない機能がいっぱいですね(*´∇`*)もっとガイドも読んで、勉強しよっと。







こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。