前回、カスタムUITableViewControllerをつくる
最初に簡単な例として、配列に入っている文字列を一覧でテーブルビューに表示してみる。
1.[CourseListViewController.h]に、文字列一覧を格納する[NSArray]を宣言する。
@interface CourseListViewController : UITableViewController {
@private
NSArray* item_; // テーブルに表示する要素を保持するための配列
}
2.[CourseListViewController.m]を開き、[viewDidLoad]の中で、配列に文字列一覧を格納する。ビューコントローラがインスタンス化された時に呼ばれ、ここに初期化処理を書きます。
※もしソース内にメソッドが記載されていない場合は追加してください。
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
// 配列に文字列一覧を格納する
item_ = [[NSArray alloc] initWithObjects:
@"DATA 1", @"DATA 2", @"DATA 3",
@"DATA 4", @"DATA 5", nil];
}
3.データの準備ができたのでテーブルに表示する処理を書きます。テーブルにデータを表示させるには、テーブルからプロトコル(呼び出し、イベントみたいなもの)に対してデータを返してあげる必要があります。例えば、テーブルからデータは何件ありますか?やここのデータはなんですか?といった呼び出しがされます。それぞれに適切な値を返してあげることでテーブルにデータが表示されます。
[CourseListViewController.m]を開き、以下のコードを追加します。
※もしソース内にメソッドが記載されていない場合は追加してください。
ここでは以下の内容を返している
・セクション数(データのグループ数)
・セクション内のデータ数
・あるセクションの何番目のセルの内容
#pragma mark - Table view data source
// テーブル内のセクション数を返す
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
// テーブル内のセクション毎のデータ数を返す
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
// 配列に格納されいる文字列数を返してあげる
return [item_ count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
// セルのラベルに文字列を代入する
cell.textLabel.text = [item_ objectAtIndex:indexPath.row];
return cell;
}
4.起動してみると、5件と少ないですがデータが表示されました。
次回、カスタムUITableViewControllerをつくる (3)