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

iPhone

开发平台:

MultiPlatform

  1. //
  2. //  DisclosureButtonController.m
  3. //  Nav
  4. //
  5. //  Created by Jeff LaMarche on 7/22/08.
  6. //  Copyright 2008 __MyCompanyName__. All rights reserved.
  7. //
  8. #import "DisclosureButtonController.h"
  9. #import "NavAppDelegate.h"
  10. #import "DisclosureDetailController.h"
  11. @implementation DisclosureButtonController
  12. @synthesize list;
  13. -(id)initWithStyle:(UITableViewStyle)style {
  14. if (self = [super initWithStyle:style]) {
  15. }
  16. return self;
  17. }
  18. - (void)viewDidLoad {
  19. NSArray *array = [[NSArray alloc] initWithObjects:@"Toy Story", @"A Bug's Life", @"Toy Story 2", @"Monsters, Inc.", @"Finding Nemo", @"The Incredibles", @"Cars", @"Ratatouille", @"WALL-E", @"Up", nil];
  20. self.list = array;
  21. [array release];
  22. [super viewDidLoad];
  23. }
  24.  
  25. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  26. // Return YES for supported orientations
  27. return (interfaceOrientation == UIInterfaceOrientationPortrait);
  28. }
  29. - (void)didReceiveMemoryWarning {
  30. [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
  31. // Release anything that's not essential, such as cached data
  32. }
  33. - (void)dealloc {
  34. [childController release];
  35. [super dealloc];
  36. }
  37. #pragma mark -
  38. #pragma mark Table Data Source Methods
  39. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  40. return 1;
  41. }
  42. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  43. return [list count];
  44. }
  45. - (UITableViewCell *)tableView:(UITableView *)tableView 
  46.  cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  47. static NSString *MyIdentifier = @"DisclosureButtonCellIdentifier";
  48. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
  49. if (cell == nil) {
  50. cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero 
  51.    reuseIdentifier:MyIdentifier] autorelease];
  52. }
  53. // Configure the cell
  54. NSUInteger row = [indexPath row];
  55. NSString *rowString = [list objectAtIndex:row];
  56. cell.text = rowString;
  57. [rowString release];
  58. return cell;
  59. }
  60. #pragma mark -
  61. #pragma mark Table Delegate Methods
  62. - (UITableViewCellAccessoryType)tableView:(UITableView *)tableView 
  63.  accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
  64. {
  65. return UITableViewCellAccessoryDetailDisclosureButton;
  66. }
  67. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  68. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hey, do you see the disclosure button?" 
  69. message:@"If you're trying to drill down, touch that instead" 
  70.    delegate:nil 
  71.   cancelButtonTitle:@"Won't happen again" 
  72.   otherButtonTitles:nil];
  73. [alert show];
  74. [alert release];
  75. }
  76. - (void)tableView:(UITableView *)tableView 
  77. accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
  78. {
  79. if (childController == nil)
  80. childController = [[DisclosureDetailController alloc] 
  81.    initWithNibName:@"DisclosureDetail" bundle:nil];
  82. childController.title = @"Disclosure Button Pressed";
  83. NSUInteger row = [indexPath row];
  84. NSString *selectedMovie = [list objectAtIndex:row];
  85. NSString *detailMessage  = [[NSString alloc] 
  86. initWithFormat:@"You pressed the disclosure button for %@.", selectedMovie];
  87. childController.message = detailMessage;
  88. childController.title = selectedMovie;
  89. [detailMessage release];
  90. NavAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
  91. [delegate.navController pushViewController:childController animated:YES];
  92. }
  93. @end