Revision: 41742
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 23, 2011 02:21 by bethjt1220
Initial Code
// ---------- Top Level ----------------
- (void)viewDidLoad {
self.title = @"Categories";
NSMutableArray *array = [[NSMutableArray alloc] init];
NSString *path = [[NSBundle mainBundle] pathForResource:@"CategoryData"
ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc]
initWithContentsOfFile:path];
self.buildings = dict;
[dict release];
for(id name in buildings) {
CategorySecondLevelViewController *controller = [[CategorySecondLevelViewController alloc]
initWithStyle:UITableViewStylePlain];
controller.title = name;
[array addObject:controller];
[controller release];
}
self.categories = array;
[array release];
[super viewDidLoad];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CategoryCell = @"CategoryCell";
// reuse cell if possible
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
CategoryCell];
if(cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle: UITableViewCellStyleDefault
reuseIdentifier: CategoryCell] autorelease];
}
// configure cell
NSUInteger row = [indexPath row];
// extension point to include images if wanted
UITableViewController *controller = [categories objectAtIndex:row];
cell.textLabel.text = controller.title;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
// ---------- Second Level ----------------
- (void)viewDidLoad {
NSString *path = [[NSBundle mainBundle] pathForResource:@"CategoryData"
ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc]
initWithContentsOfFile:path];
NSString *key = self.title;
NSArray *values = [dict objectForKey:key];
self.list = values;
[dict release];
[super viewDidLoad];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *BuildingIdentifier = @"BuildingIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
BuildingIdentifier];
if(cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:BuildingIdentifier] autorelease];
}
NSUInteger row = [indexPath row];
cell.textLabel.text = [list objectAtIndex:row];
return cell;
}
Initial URL
Initial Description
Pulls data from a plist set up as a dictionary of arrays of strings. Creates multi-level TableView that can be nested inside a navigation controller. Snippet shows key methods for 2 nested levels. 2 levels --> 2 classes (both of which extend UITableViewController)
Initial Title
IOS TableViews in Navigation Controller
Initial Tags
ios
Initial Language
iPhone