PresidentsViewController.m
上传用户:jjjjag8
上传日期:2017-04-17
资源大小:1443k
文件大小:3k
源码类别:

iPhone

开发平台:

MultiPlatform

  1. //
  2. //  PresidentsViewController.m
  3. //  Nav
  4. //
  5. //  Created by Jeff LaMarche on 7/22/08.
  6. //  Copyright 2008 __MyCompanyName__. All rights reserved.
  7. //
  8. #import "PresidentsViewController.h"
  9. #import "PresidentDetailController.h"
  10. #import "President.h"
  11. #import "NavAppDelegate.h"
  12. @implementation PresidentsViewController
  13. @synthesize list;
  14. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
  15. if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
  16. // Initialization code
  17. }
  18. return self;
  19. }
  20. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  21. // Return YES for supported orientations
  22. return (interfaceOrientation == UIInterfaceOrientationPortrait);
  23. }
  24. - (void)didReceiveMemoryWarning {
  25. [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
  26. // Release anything that's not essential, such as cached data
  27. }
  28. - (void)viewDidLoad {
  29. NSString *path = [[NSBundle mainBundle] pathForResource:@"Presidents" ofType:@"plist"];
  30. NSData *data;
  31. NSKeyedUnarchiver *unarchiver;
  32. data = [[NSData alloc] initWithContentsOfFile:path];
  33. unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  34. NSMutableArray *array = [unarchiver decodeObjectForKey:@"Presidents"];
  35. self.list = array;
  36. [unarchiver finishDecoding];
  37. [unarchiver release];
  38. [data release];
  39. [super viewDidLoad];
  40. }
  41. - (void)dealloc {
  42. [list release];
  43. [super dealloc];
  44. }
  45. #pragma mark -
  46. #pragma mark Table Data Source Methods
  47. - (NSInteger)tableView:(UITableView *)tableView 
  48.  numberOfRowsInSection:(NSInteger)section {
  49. return [self.list count];
  50. }
  51. - (UITableViewCell *)tableView:(UITableView *)tableView 
  52.  cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  53. static NSString *PresidentListCellIdentifier = @"PresidentListCellIdentifier";
  54. UITableViewCell *cell = [tableView 
  55.  dequeueReusableCellWithIdentifier:PresidentListCellIdentifier];
  56. if (cell == nil) {
  57. cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero 
  58.    reuseIdentifier:PresidentListCellIdentifier] autorelease];
  59. }
  60. NSUInteger row = [indexPath row];
  61. President *thePres = [self.list objectAtIndex:row];
  62. cell.text = thePres.name;
  63. return cell;
  64. }
  65. #pragma mark -
  66. #pragma mark Table Delegate Methods
  67. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  68. NSUInteger row = [indexPath row];
  69. President *prez = [self.list objectAtIndex:row];
  70. PresidentDetailController *childController = [[PresidentDetailController alloc] 
  71.   initWithStyle:UITableViewStyleGrouped];
  72. childController.title = prez.name;
  73. childController.president = prez;
  74. NavAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
  75. UINavigationController *navController = [delegate navController];
  76. [navController pushViewController:childController animated:YES];
  77. }
  78. @end