在 AppDelegate 中加载的 Plist 具有以下结构:
根---->字典
测试项目---->数组
第 1 项 ----> 字典
HeaderTitle ----> 字符串 ----> 第 1 节
项目---->数组
第 1 项 ----> 字典
名字---->字符串---->任何名字
SecondName ----> String ----> 另一个名字
CellIcon ----> 字符串 ----> Icon.gif
查看---->编号---->2
第2项---->字典
名字 ----> 字符串 ----> 任何名字 2
SecondName ----> String ----> 另一个名字 2
CellIcon ----> 字符串 ----> Icon2.gif
查看---->编号---->2
我有一个 TableViewController.m,它要求我将上面的 plist 结构放在一个有 5 个部分的表视图中。问题是我无法在表格视图的描述部分中显示该数据。我在编写一个可变数组来完成这项任务时感到困惑。我已经在使用数组来控制表中的不同级别(视图),但是我无法添加可变数组来控制表的各个部分。我的代码如下:
- (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];
}