このページは「iPhoneプログラミング入門」(工学社刊、ISBN 978-4-7775-1541-7)を読んで、もっと先へ進んでみたいと思った人への説明です。
次へ->
<-前へ
「次の一歩」一覧へ
最も簡単なナビゲーションの作り方2
RootViewController.mを編集して、テーブルを表示させる
配列theListを作成
「1最も簡単なテーブルの作り方」でやったとおりに,配列theListを作成します。
プログラムの最初に宣言しておき、メソッドviewDidLoadをアンコメントしてから、その中にtheListの値を設定するんでしたね。
リスト2 配列theListの宣言と値の設定
@implementation RootViewController
NSArray *theList=nil;
.....
- (void)viewDidLoad {
theList=[[NSArray alloc] initWithObjects:@"Red", @"Green", @"Blue",nil];
}
配列theListの解放
忘れないうちに、作成した配列の解放をdeallocメソッドに加えておきます。これはもうコードは出しませんが大丈夫ですネ。
メソッドtableView:numberOfRowsInSection:の実装
これも「1...テーブルの作り方」でやった通りに指定します。前のFirstTableプロジェクトで書いたものをベタっと貼付けてしまえばOKです。
リスト3 tableView:numberOfRowsInSection:の実装
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [theList count];
}
メソッドtableView:cellForRowAtIndexPath:の実装
メソッドtableView:cellForRowAtIndexPath:は、もうかなりのところ実装されています。リスト3のようになっているのです。
リスト4 tableView:cellForRowAtIndexPath:で実装されている内容
- (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.
return cell;
}
メソッドreuseIdentifierの引数はCellIdentifierという変数名で、このメソッドの中で作成されています。そして、特にこのCellIdentifierを「解放」する手続きは行われていないようです。まあ、こんなので、いいのかも知れませんね。
我々がやることといえば、リスト4の「Configure the cell」と書かれた部分(直前または直後)に、リスト5のように書くだけです。FirstTableプロジェクトで書いたものを貼付けてしまいましょう。
リスト5 我々が書き加えるのは
// Configure the cell.
cell.textLabel.text=[theList objectAtIndex:indexPath.row];
しつこいようですが、「リスト5のように書きなさい」と言われたとおりに書けば確かにこのメソッドは出来上がります。でも、それじゃ全然身に付きません。「FirstTable」プロジェクトでひと通り自分で書いてみたからこそ、「なぜそのように書けばいいのか」がわかるのです。ネ。
起動してみよう
ファイルを保存したら、ビルド・実行してみましょう。「上に謎の灰色のバーのついたテーブル」が現れたら成功です。
図2 まずはテーブルの中身を表示させた
。