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

iPhone

开发平台:

MultiPlatform

  1. //
  2. //  RootViewController.m
  3. //  Nav
  4. //
  5. //  Created by Jeff LaMarche on 7/22/08.
  6. //  Copyright 2008 __MyCompanyName__. All rights reserved.
  7. //
  8. #import "RootViewController.h"
  9. #import "SecondLevelViewController.h"
  10. #import "NavAppDelegate.h"
  11. #import "DisclosureButtonController.h"
  12. #import "CheckListController.h"
  13. #import "RowControlsController.h"
  14. #import "MoveMeController.h"
  15. #import "DeleteMeController.h"
  16. #import "PresidentsViewController.h"
  17. @implementation RootViewController
  18. @synthesize controllers;
  19. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
  20. if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
  21. // Initialization code
  22. }
  23. return self;
  24. }
  25. /*
  26.  Implement loadView if you want to create a view hierarchy programmatically
  27. - (void)loadView {
  28. }
  29.  */
  30. - (void)viewDidLoad {
  31. self.title = @"Root Level";
  32. NSMutableArray *array = [[NSMutableArray alloc] init];
  33. // Disclosure Button
  34. DisclosureButtonController *disclosureButtonController = [[DisclosureButtonController alloc] 
  35.   initWithStyle:UITableViewStylePlain];
  36. disclosureButtonController.title = @"Disclosure Buttons";
  37. disclosureButtonController.rowImage = [UIImage imageNamed:@"disclosureButtonControllerIcon.png"];
  38. [array addObject:disclosureButtonController];
  39. [disclosureButtonController release];
  40. // Check List 
  41. CheckListController *checkListController = [[CheckListController alloc] 
  42. initWithStyle:UITableViewStylePlain];
  43. checkListController.title = @"Check One";
  44. checkListController.rowImage = [UIImage imageNamed:@"checkmarkControllerIcon.png"];
  45. [array addObject:checkListController];
  46. [checkListController release];
  47. // Table Row Controls
  48. RowControlsController *rowControlsController = [[RowControlsController alloc] 
  49. initWithStyle:UITableViewStylePlain];
  50. rowControlsController.title = @"Row Controls";
  51. rowControlsController.rowImage = [UIImage imageNamed:@"rowControlsIcon.png"];
  52. [array addObject:rowControlsController];
  53. [rowControlsController release];
  54. // Move Me
  55. MoveMeController *moveMeController = [[MoveMeController alloc]
  56.   initWithStyle:UITableViewStylePlain];
  57. moveMeController.title = @"Move Me";
  58. moveMeController.rowImage = [UIImage imageNamed:@"moveMeIcon.png"];
  59. [array addObject:moveMeController];
  60. [moveMeController release];
  61. // Delete Me
  62. DeleteMeController *deleteMeController = [[DeleteMeController alloc] 
  63.   initWithStyle:UITableViewStylePlain];
  64. deleteMeController.title = @"Delete Me";
  65. deleteMeController.rowImage = [UIImage imageNamed:@"deleteMeIcon.png"];
  66. [array addObject:deleteMeController];
  67. [deleteMeController release];
  68. // President View/Edit
  69. PresidentsViewController *presidentsViewController = [[PresidentsViewController alloc] 
  70.   initWithStyle:UITableViewStylePlain];
  71. presidentsViewController.title = @"Detail Edit";
  72. presidentsViewController.rowImage = [UIImage imageNamed:@"detailEditIcon.png"];
  73. [array addObject:presidentsViewController];
  74. [presidentsViewController release];
  75. self.controllers = array;
  76. [array release];
  77. [super viewDidLoad];
  78. }
  79.  
  80. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  81. // Return YES for supported orientations
  82. return (interfaceOrientation == UIInterfaceOrientationPortrait);
  83. }
  84. - (void)didReceiveMemoryWarning {
  85. [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
  86. // Release anything that's not essential, such as cached data
  87. }
  88. - (void)dealloc {
  89. [controllers release];
  90. [super dealloc];
  91. }
  92. #pragma mark -
  93. #pragma mark Table Data Source Methods
  94. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  95. return [self.controllers count];
  96. }
  97. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  98. static NSString *TopLevelCellIdentifier = @"TopLevelCellIdentifier";
  99. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TopLevelCellIdentifier];
  100. if (cell == nil) {
  101. cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:TopLevelCellIdentifier] autorelease];
  102. }
  103. // Configure the cell
  104. NSUInteger row = [indexPath row];
  105. SecondLevelViewController *controller = [controllers objectAtIndex:row];
  106. cell.text = controller.title;
  107. cell.image = controller.rowImage;
  108. return cell;
  109. }
  110. #pragma mark -
  111. #pragma mark Table View Delegate Methods
  112. - (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
  113. {
  114. return UITableViewCellAccessoryDisclosureIndicator;
  115. }
  116. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  117. NSUInteger row = [indexPath row];
  118. SecondLevelViewController *nextController = [self.controllers objectAtIndex:row];
  119. NavAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
  120. [delegate.navController pushViewController:nextController animated:YES];
  121. }
  122. @end