昨日のエントリーでは、表示されない現象について書きました。
で今日は、その続きからで、表示する方法について。
結果から言うと、下の図のようになります。
肝心のソースコードですが、下のようにすることで、表示できるようになりました。
UIViewController *contentViewController = [[UIViewController alloc] init]; contentViewController.title = @"hoge"; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:contentViewController]; [window addSubview:[navigationController view]]; [window makeKeyAndVisible]; |
で、どうしてできるようになったかというのは、ここのスレッドを読んでできるようになったと思う。
前回と違う点は、最初に、UIViewController型のインスタンス変数を宣言し、そっちにタイトルを設定したこと。
次に宣言したインスタンス変数を初期値とする、UINavigationControllerのインスタンス変数を作りだし、それをUIWindowに貼付けました。
これでも違いがよくわからないので、図で表現してみたいと思います。
昨日の場合、オブジェクトを図にしてみるとこんな感じになるのではないかと。
この場合、UIWindow(iPhone上では実態のないwindowで表示されない。)に貼り付いているのは、ヘッダーを設定したUINavigationController型の中にセットされているview(肌色の部分)なのでタイトルがでてこないのかなーっと。
逆に今日のソースは、
となり、あらかじめベースとなるインスタンス変数(UIViewController)をもとに、UINavigationController型のインスタンス変数を作り出したので、UINavigationController型のインスタンスのviewはあらかじめヘッダーのついているviewとなっており、結果として、無事にタイトルが出力されたのではないかと。
話は変わりすが、上の図、mac用のエクセルで作ったのですが、図形がめちゃくちゃかっこいい。
windowsのoffice2003とは大違いだ。
office2007もこんな感じなのかな??
たいして違いがないかもしれないけど、ちょっとしたおもてなしで、こうも創作意欲が変わってくるから、物作りってホント奥深いなーっとシミジミ思うのであった。
0 コメント:
コメントを投稿