作ったcontrollerをiPhoneに表示させましょう.
とりあえず,以下のようにコードを書いてください.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *controller = [[UIViewController alloc] initWithNibName:nil bundle:nil];
[controller.view setBackgroundColor:[UIColor grayColor]];
self.window.rootViewController = controller;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
では解説していきます.
今回新たに2行ほど追加しました.
[controller.view setBackgroundColor:[UIColor grayColor]];
self.window.rootViewController = controller;
self.window.rootViewController = controller;
1行目で「UIViewControllerが管理するUIViewの背景色を設定」し
2行目で「アプリの起動が終わった後に表示するUIViewを管理するUIViewControllerの設定」をしています.
ごちゃごちゃ書きましたが,ようするに
作成したUIViewに色をつけて表示しただけです.
では,もう少し詳しい解説を.
[controller.view setBackgroundColor:[UIColor grayColor]];
まず前半のcontroller.viewについて.controllerはUIViewControllerのインスタンスです.前回のエントリで宣言した変数ですね.
Objective-Cでは,「.」を用いることでプロパティにアクセスすることができます.
この例ではUIViewControllerのviewプロパティにアクセスしています.
...プロパティが何なのかは,今後説明します(多分).今は使い方だけ覚えましょう.
なんと,UIViewControllerのviewプロパティにアクセスすることで,
そのUIViewControllerが管理するUIViewを取得・設定することができるのです!!
しかも,UIViewControllerを生成した時点でUIViewは既に生成されています!!
次に後半のsetBackgroundColor:[UIColor grayColor]];について.
setBackgroundColorですが,これはUIViewの背景を設定します!!という意味です.
分かりやすいですね.
その後の[UIColor grayColor]はUIColorの灰色という意味です.
つまり,UIViewの背景を灰色にします!!という1行だったわけですね.
「あれ,"UI"ではじまる"UIColor"はallocしなくていいんですか??」
みたいな声が聞こえてきそうですね.
...まぁこういう例外もある訳です.今後,機会があれば説明します(多分).
ではガンガン続けます!!
self.window.rootViewController = controller;
ここでは,アプリが起動した後(起動中ではなく)に最初に表示するUIViewを管理するUIViewControllerを設定します.
まず左辺のself.window.rootViewControllerについて.
ちょっとエントリが長くなってきましたのでざっくりと.
「.」でプロパティにアクセスできることは先程説明しました.
ここでは,rootViewControllerというプロパティにアクセスしているわけですね.
ここに設定されるViewControllerこそが
アプリが起動した後に最初に表示するViewControllerになるわけです.
そこに,さっき作ったUIViewControllerをぶちこむわけですね!!
それがこの行の正体でした.
さて,それでは実行してみましょう.
iPhoneに灰色の画面が表示されれば成功です.
どうですか,3行書くだけで,灰色の画面を表示することができました.
これを100行,1000行,10000行と書くことで,いったいどんなアプリができるのか...
考えただけでワクワクしますね!!!
次の記事へ
HOMEに戻る