さて、個人情報データを管理するクラスを作ったら、
テーブルオブジェクトを管理するコントローラーを作ります。
テーブル表示まで後もうちょっとです。
さて、「class」の新規追加をします。
ここ、非常に悩んだ。。。。
参考書籍はちょっと古いのか、Xcodeのバージョンがアップしているので、
本のような項目が無かったので思ったようにすすめなかった
最新のXcodeにあわせると以下の通りなるので、このように追加します。
iPhone OS > Cocoa Touch Class > UIViewController subclass を選択

ファイル名はContactListViewController.mとでもしておきます。
同時にContactListViewController.hも作成しときます。

では、ContactListViewController.h の中身を書きます。
下のように、足らないとこを追加します。
#import < UIKit/UIKit.h>
#import "PersonalDataManager.h" //PersonalDataManagerクラスのヘッダファイルをインポート
@interface ContactListViewController : UITableViewController {
PersonalDataManager *manager; //PersonalDataManagerのインスタンスを保持するメンバ変数の宣言
}
@end
ほんでは、ContactListViewController.m の中身を書きます。
- (id)initWithStyle:(UITableViewStyle)style の部分がコメントアウトされてるんで、
コメントアウトしないで、下の様に編集!
initWithStyleは初期化メソッドでオーバーライドしてます。
- (id)initWithStyle:(UITableViewStyle)style {
//初期化時にPersonalDataManagerのオブジェクトを取得するようにする
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
if ((self = [super initWithStyle:style])) {
manager = [PersonalDataManager sharedPersonalDataManager];
}
return self;
}
cellForRowAtIndexPathの部分を実装しますが、

↑このもともとあるメソッドの下の方をちょろっと下の様に編集します。
//表示するテーブルの各セクションの行数を問い合わせる
// Customize the appearance of table view cells.
- (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];
}
// Set up the cell...
cell.textLabel.text = [[manager loadPersonalDataAtIndex:indexPath.row] name];
// [cell setTextLabel:(UILabel *):[[manager loadPersonalDataAtIndex:indexPath.row] name]];
return cell;
}
で、途中に下の図のようなところがあるので、

下のコードの様に修正してみます。
- (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 [manager countOfPersonalData];;
}
ここまできたら、実行してエラーがない事を確認!
次回は画面にテーブル表示させるぞ。( ̄▽+ ̄*)

にほんブログ村
> 次のテーマ テーブルをつくっていこう。
> テーブルのデータを管理するクラスを作ってみる
> テーブルビューのコントローラーを作ってみる。(★この記事★)
> ついにテーブルの表示完成!
> テーブルをいじくる。
> テーブルを本当にいじくる
> テーブルを本当に実装を始めるよ。
> テーブルを改造しましょ。
> テーブル改造のつづきやけど。。
> テーブルのセルに電話番号を追加してみる。
> モード切り替え用ボタンの追加
> セル(データ)の削除処理と並び替え!
> テーブルいじくりも大詰め?
テーブルオブジェクトを管理するコントローラーを作ります。
テーブル表示まで後もうちょっとです。
さて、「class」の新規追加をします。
ここ、非常に悩んだ。。。。
参考書籍はちょっと古いのか、Xcodeのバージョンがアップしているので、
本のような項目が無かったので思ったようにすすめなかった
最新のXcodeにあわせると以下の通りなるので、このように追加します。
iPhone OS > Cocoa Touch Class > UIViewController subclass を選択

ファイル名はContactListViewController.mとでもしておきます。
同時にContactListViewController.hも作成しときます。

では、ContactListViewController.h の中身を書きます。
下のように、足らないとこを追加します。
#import < UIKit/UIKit.h>
#import "PersonalDataManager.h" //PersonalDataManagerクラスのヘッダファイルをインポート
@interface ContactListViewController : UITableViewController {
PersonalDataManager *manager; //PersonalDataManagerのインスタンスを保持するメンバ変数の宣言
}
@end
ほんでは、ContactListViewController.m の中身を書きます。
- (id)initWithStyle:(UITableViewStyle)style の部分がコメントアウトされてるんで、
コメントアウトしないで、下の様に編集!
initWithStyleは初期化メソッドでオーバーライドしてます。
- (id)initWithStyle:(UITableViewStyle)style {
//初期化時にPersonalDataManagerのオブジェクトを取得するようにする
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
if ((self = [super initWithStyle:style])) {
manager = [PersonalDataManager sharedPersonalDataManager];
}
return self;
}
cellForRowAtIndexPathの部分を実装しますが、
↑このもともとあるメソッドの下の方をちょろっと下の様に編集します。
//表示するテーブルの各セクションの行数を問い合わせる
// Customize the appearance of table view cells.
- (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];
}
// Set up the cell...
cell.textLabel.text = [[manager loadPersonalDataAtIndex:indexPath.row] name];
// [cell setTextLabel:(UILabel *):[[manager loadPersonalDataAtIndex:indexPath.row] name]];
return cell;
}
で、途中に下の図のようなところがあるので、

下のコードの様に修正してみます。
- (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 [manager countOfPersonalData];;
}
ここまできたら、実行してエラーがない事を確認!
次回は画面にテーブル表示させるぞ。( ̄▽+ ̄*)
にほんブログ村
> 次のテーマ テーブルをつくっていこう。
> テーブルのデータを管理するクラスを作ってみる
> テーブルビューのコントローラーを作ってみる。(★この記事★)
> ついにテーブルの表示完成!
> テーブルをいじくる。
> テーブルを本当にいじくる
> テーブルを本当に実装を始めるよ。
> テーブルを改造しましょ。
> テーブル改造のつづきやけど。。
> テーブルのセルに電話番号を追加してみる。
> モード切り替え用ボタンの追加
> セル(データ)の削除処理と並び替え!
> テーブルいじくりも大詰め?








