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

iPhone

开发平台:

MultiPlatform

  1. //
  2. //  CheckListController.m
  3. //  Nav
  4. //
  5. //  Created by Jeff LaMarche on 7/22/08.
  6. //  Copyright 2008 __MyCompanyName__. All rights reserved.
  7. //
  8. #import "CheckListController.h"
  9. @implementation CheckListController
  10. @synthesize list;
  11. @synthesize lastIndexPath;
  12. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
  13. if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
  14. // Initialization code
  15. }
  16. return self;
  17. }
  18. /*
  19.  Implement loadView if you want to create a view hierarchy programmatically
  20. - (void)loadView {
  21. }
  22.  */
  23. - (void)viewDidLoad {
  24. NSArray *array = [[NSArray alloc] initWithObjects:@"Who Hash",  @"Bubba Gump Shrimp Étouffée", @"Who Pudding", @"Scooby Snacks", @"Everlasting Gobstopper", @"Green Eggs and Ham", @"Soylent Green", @"Hard Tack", @"Lembas Bread",  @"Roast Beast", @"Blancmange", nil];
  25. self.list = array;
  26. [array release];
  27. [super viewDidLoad];
  28. }
  29. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  30. // Return YES for supported orientations
  31. return (interfaceOrientation == UIInterfaceOrientationPortrait);
  32. }
  33. - (void)didReceiveMemoryWarning {
  34. [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
  35. // Release anything that's not essential, such as cached data
  36. }
  37. - (void)dealloc {
  38. [list release];
  39. [lastIndexPath release];
  40. [super dealloc];
  41. }
  42. #pragma mark -
  43. #pragma mark Table Data Source Methods
  44. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  45. return 1;
  46. }
  47. - (NSInteger)tableView:(UITableView *)tableView 
  48.  numberOfRowsInSection:(NSInteger)section {
  49. return 10;
  50. }
  51. - (UITableViewCell *)tableView:(UITableView *)tableView 
  52.  cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  53. static NSString *CheckMarkCellIdentifier = @"CheckMarkCellIdentifier";
  54. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CheckMarkCellIdentifier];
  55. if (cell == nil) {
  56. cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero 
  57.    reuseIdentifier:CheckMarkCellIdentifier] autorelease];
  58. }
  59. NSUInteger row = [indexPath row];
  60. NSUInteger oldRow = [lastIndexPath row];
  61. cell.text = [list objectAtIndex:row];
  62. cell.accessoryType = (row == oldRow && lastIndexPath != nil) ? 
  63. UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
  64. return cell;
  65. }
  66. #pragma mark -
  67. #pragma mark Table Delegate Methods
  68. - (void)tableView:(UITableView *)tableView 
  69. didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  70. int newRow = [indexPath row];
  71. int oldRow = [lastIndexPath row];
  72. if (newRow != oldRow)
  73. {
  74. UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
  75. newCell.accessoryType = UITableViewCellAccessoryCheckmark;
  76. UITableViewCell *oldCell = [tableView cellForRowAtIndexPath: lastIndexPath]; 
  77. oldCell.accessoryType = UITableViewCellAccessoryNone;
  78. lastIndexPath = indexPath;
  79. }
  80. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  81. }
  82. @end