次の構造で AppDelegate にロードされた Plist:
ルート ----> 辞書
テスト項目 ----> 配列
項目 1 --> 辞書
HeaderTitle ----> 文字列 ----> セクション 1
アイテム ----> 配列
項目 1 --> 辞書
FirstName ----> 文字列 ----> 任意の名前
SecondName ----> 文字列 ----> 別名
CellIcon ----> 文字列 ----> Icon.gif
ビュー---->数----> 2
項目 2 --> 辞書
名 ----> 文字列 ----> 任意の名前 2
SecondName ----> 文字列 ----> 別名 2
CellIcon ----> 文字列 ----> Icon2.gif
ビュー---->数----> 2
上記の plist 構造を 5 つのセクションを持つテーブル ビューに配置する必要がある TableViewController.m があります。問題は、テーブル ビューの記述されたセクションにそのデータを表示できないことです。このタスクを達成するために可変配列を書くことに混乱しています。テーブル内のさまざまなレベル (ビュー) を制御するために配列を既に使用していますが、可変配列を追加してテーブルのセクションを制御するのに問題があります。私が持っているコードは次のとおりです。
- (void)viewDidLoad {
[super viewDidLoad];
if (CurrentLevel == 0) {
NSArray *tempArray = [[NSArray alloc] init];
self.tableDataSource = tempArray;
[tempArray release];
TheAppDelegate *AppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
self.tableDataSource = [AppDelegate.data objectForKey:@"SampleArray"];
self.navigationItem.title = @"Main";
}
else
self.navigationItem.title = CurrentTitle;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [menuSections count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSDictionary *menuSection = [menuSections objectAtIndex:section];
return [menuSection objectForKey:@"HeaderTitle"];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSArray *menuItems = [[menuSections objectAtIndex:section] objectForKey:@"Items"];
return [menuItems count];
}