UIViewとUIViewControllerのお話(3) | 初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログです.
入門レベルですので開発初心者にも,できるだけ分かるように丁寧に説明していきます(多分).

これでUIViewController(のインスタンス)をつくることができたので,

作った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;
まず,
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に戻る