2009/07/25

[Objective-C][iPhone sdk]navigationバーのtitleを表示

昨日のエントリーでは、表示されない現象について書きました。

で今日は、その続きからで、表示する方法について。

結果から言うと、下の図のようになります。

Photobucket

肝心のソースコードですが、下のようにすることで、表示できるようになりました。

UIViewController *contentViewController = [[UIViewController alloc] init];
contentViewController.title = @"hoge";

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:contentViewController];

[window addSubview:[navigationController view]];
[window makeKeyAndVisible];

で、どうしてできるようになったかというのは、ここのスレッドを読んでできるようになったと思う。

前回と違う点は、最初に、UIViewController型のインスタンス変数を宣言し、そっちにタイトルを設定したこと。

次に宣言したインスタンス変数を初期値とする、UINavigationControllerのインスタンス変数を作りだし、それをUIWindowに貼付けました。

これでも違いがよくわからないので、図で表現してみたいと思います。

昨日の場合、オブジェクトを図にしてみるとこんな感じになるのではないかと。

Photobucket
この場合、UIWindow(iPhone上では実態のないwindowで表示されない。)に貼り付いているのは、ヘッダーを設定したUINavigationController型の中にセットされているview(肌色の部分)なのでタイトルがでてこないのかなーっと。

逆に今日のソースは、

Photobucket
となり、あらかじめベースとなるインスタンス変数(UIViewController)をもとに、UINavigationController型のインスタンス変数を作り出したので、UINavigationController型のインスタンスのviewはあらかじめヘッダーのついているviewとなっており、結果として、無事にタイトルが出力されたのではないかと。

話は変わりすが、上の図、mac用のエクセルで作ったのですが、図形がめちゃくちゃかっこいい。

windowsのoffice2003とは大違いだ。
office2007もこんな感じなのかな??

たいして違いがないかもしれないけど、ちょっとしたおもてなしで、こうも創作意欲が変わってくるから、物作りってホント奥深いなーっとシミジミ思うのであった。

0 コメント:

コメントを投稿