詳細コントローラーの追加は、実装がそれほど難しくありません。ルート ビューでは、上記の plist ファイルからすべてのデータを収集し、独自の基準に従ってデータを並べ替えます。すべてのセルの NSDictionary を含むルート ビュー コントローラーに NSArray を作成しないのはなぜですか。その辞書には、そのオブジェクトのタイトル、価格などのすべての情報を入れます。詳細コントローラーに NSDictionary プロパティを追加するだけです。セルを選択すると、didSelectRowAtIndexPath
メソッドが呼び出されます。このメソッドでは、詳細ビュー コントローラーの NSDictionary プロパティを、ルート ビュー コントローラーの NSArray のインデックスのオブジェクトとして設定します。indexPath.row
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *myDetailController = [[DetailViewController alloc] initWithNibName:@"NibBame" bundle:nil];
myDetailController.detailDict = [rootViewArray objectAtIndex:indexPath.row];
[self.navigationController pushViewController:myDetailController animated:YES];
[myDetailController release];
}
その後、特定のセルのすべてのデータが詳細ビュー コントローラーで利用できるようになり、NSDictionary の利点を利用して、単純なキーだけで変数を取得できます。例えば:
- (void)viewDidLoad {
self.title = [myDictionary valueForKey:@"specificKey"];
}