このページは「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 まずはテーブルの中身を表示させた

RootViewController.mをさらに編集して、いよいよナビゲーションも使用します