UITableViewControllerのお話(2) | 初心者がiPhoneアプリを作るブログ

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

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

それでは,コーディングしていきましょう.

今回は,UITableViewControllerを継承したクラスを作成して,
機能を確認していきましょう.

それでは,XCodeのメニューバーから,
File → New → New File
と進みます.

そして
UIViewController subclass
を選択します.

次に
Class: CustomTableViewController (お好きなクラス名でいいですよ)
Subclass of: UITableViewController
と選択してファイルを作成してください.

できあがったファイルを見てみましょう.
「.h」ファイルはいつも通りですね.UITableViewControllerを継承できています.

「.m」ファイルは大変なことになってますね笑
UITableViewはとにかくコードが複雑になってしまいます.
でも,じっくり読めば簡単ですから,安心してください.

さて,ファイルを追加しただけなのに,warning(黄色い三角)がでていますよね.
ここに移動してください.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 2;
}
「#warning」の行は消して下さい.
ここではセクション(リストのまとまり)の数を決定します.
今回は2セクションつくりますので,「return 2;」としてください.

では,もう一つwarningがでていると思います.そこに移動してください.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    if(section == 0)
        return 5;
    else if(section == 1)        
                   return 4;
    else
        return 0;
}
セクションによって行の数を変えてみましょう.
先程,セクションを2つ作りました.
セクションのインデックス(セクション番号)は0からはじまります.

この関数の引数のsectionにインデックスが格納されていますので,
if文で分岐させ,希望する行数をreturnで返します.

さて,ここで疑問に思うことがありますよね.

何で,returnで値を返すことで設定ができるんだ??

そうなんです.ここが難しいんですよね.
先程から紹介している関数は,「デリゲート」と呼ばれるものです.

こちらも機会があれば説明させて頂くとして,今の段階では,
UITableViewControllerを作成する際に自動で呼ばれる関数
くらいに思っておいて下さい.

自動で呼ばれるので,呼んだ後の返り値の処理も自動でやってくれます.
つまり,ここに処理を書く(returnの値を設定する)ことで行数等を設定できる訳なんです.

次の記事へ

HOMEに戻る