Created
March 27, 2010 04:15
-
-
Save NYiPhoneDeveloper/345712 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import "FlowerColorTableViewController.h" | |
#define sectionCount 2 | |
#define redSection 0 | |
#define blueSection 1 | |
@implementation FlowerColorTableViewController | |
#pragma mark - | |
#pragma mark Initialization | |
/* | |
- (id)initWithStyle:(UITableViewStyle)style { | |
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. | |
if ((self = [super initWithStyle:style])) { | |
} | |
return self; | |
} | |
*/ | |
#pragma mark - | |
#pragma mark View lifecycle | |
- (void)viewDidLoad | |
{ | |
redFlowers = [[NSMutableArray alloc] initWithObjects: @"One", @"Two", @"Three", @"Four", @"Five", @"Six", @"Seven", @"Eight", nil]; | |
blueFlowers = [[NSMutableArray alloc] initWithObjects: @"A", @"B", @"C", @"D", @"E", nil]; | |
[super viewDidLoad]; | |
// Uncomment the following line to preserve selection between presentations. | |
// self.clearsSelectionOnViewWillAppear = NO; | |
// Uncomment the following line to display an Edit button in the navigation bar for this view controller. | |
// self.navigationItem.rightBarButtonItem = self.editButtonItem; | |
} | |
/* | |
- (void)viewWillAppear:(BOOL)animated { | |
[super viewWillAppear:animated]; | |
} | |
*/ | |
/* | |
- (void)viewDidAppear:(BOOL)animated { | |
[super viewDidAppear:animated]; | |
} | |
*/ | |
/* | |
- (void)viewWillDisappear:(BOOL)animated { | |
[super viewWillDisappear:animated]; | |
} | |
*/ | |
/* | |
- (void)viewDidDisappear:(BOOL)animated { | |
[super viewDidDisappear:animated]; | |
} | |
*/ | |
/* | |
// Override to allow orientations other than the default portrait orientation. | |
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { | |
// Return YES for supported orientations | |
return (interfaceOrientation == UIInterfaceOrientationPortrait); | |
} | |
*/ | |
#pragma mark - | |
#pragma mark Table view data source | |
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView | |
{ | |
return sectionCount; | |
} | |
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section | |
{ | |
switch (section) // This is the integer!! The section (local variable) | |
{ | |
case redSection: | |
// returns an integer, as is required from the method return type. | |
return [redFlowers count]; // This is the number of an array. | |
break; | |
case blueSection: | |
return [blueFlowers count]; // This is the number of an array | |
break; | |
default: | |
return 0; | |
break; | |
} | |
} | |
// THIS IS A PREDEFINED METHOD!!! | |
// THIS ALLOWS US PARTICULAR FUNCTIONALITY!!! | |
-(NSString *) tableView: (UITableView *) tableView titleForHeaderInSection: (NSInteger) section | |
{ | |
switch (section) | |
{ | |
case redSection: | |
return @"Red Section"; | |
break; | |
case blueSection: | |
return @"Blue Section"; | |
break; | |
default: | |
return @"Unknown"; | |
break; | |
} | |
} | |
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath | |
{ | |
static NSString *CellIdentifier = @"Cell"; | |
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier]; | |
if (cell == nil) | |
{ | |
cell = [[[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; | |
} | |
switch (indexPath.section) | |
{ | |
case redSection: | |
[[cell textLabel] setText: [redFlowers objectAtIndex: indexPath.row]]; | |
break; | |
case blueSection: | |
[[cell textLabel] setText: [blueFlowers objectAtIndex: indexPath.row]]; | |
break; | |
default: | |
[[cell textLabel] setText: @"Unknown"]; | |
break; | |
} | |
return cell; | |
} | |
/* | |
// Override to support conditional editing of the table view. | |
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { | |
// Return NO if you do not want the specified item to be editable. | |
return YES; | |
} | |
*/ | |
/* | |
// Override to support editing the table view. | |
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { | |
if (editingStyle == UITableViewCellEditingStyleDelete) { | |
// Delete the row from the data source | |
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; | |
} | |
else if (editingStyle == UITableViewCellEditingStyleInsert) { | |
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view | |
} | |
} | |
*/ | |
/* | |
// Override to support rearranging the table view. | |
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath | |
{ | |
} | |
*/ | |
/* | |
// Override to support conditional rearranging of the table view. | |
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { | |
// Return NO if you do not want the item to be re-orderable. | |
return YES; | |
} | |
*/ | |
#pragma mark - | |
#pragma mark Table view delegate | |
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath | |
{ | |
UIAlertView *showSelection; | |
NSString *flowerMessage; | |
switch (indexPath.section) | |
{ | |
case redSection: | |
flowerMessage = [[NSString alloc] initWithFormat: @"Number %@", [redFlowers objectAtIndex: indexPath.row]]; | |
break; | |
case blueSection: | |
flowerMessage = [[NSString alloc] initWithFormat: @"Letter %@", [blueFlowers objectAtIndex: indexPath.row]]; | |
break; | |
default: | |
flowerMessage = [[NSString alloc] initWithFormat: @"I'm not sure what you chose"]; | |
break; | |
} | |
showSelection = [[UIAlertView alloc] initWithTitle: @"Flower Selected" message: flowerMessage delegate: nil cancelButtonTitle: @"OK" otherButtonTitles: nil]; | |
[showSelection show]; | |
[showSelection release]; | |
[flowerMessage release]; | |
// Navigation logic may go here. Create and push another view controller. | |
/* | |
<#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; | |
// ... | |
// Pass the selected object to the new view controller. | |
[self.navigationController pushViewController:detailViewController animated:YES]; | |
[detailViewController release]; | |
*/ | |
} | |
#pragma mark - | |
#pragma mark Memory management | |
- (void)didReceiveMemoryWarning { | |
// Releases the view if it doesn't have a superview. | |
[super didReceiveMemoryWarning]; | |
// Relinquish ownership any cached data, images, etc that aren't in use. | |
} | |
- (void)viewDidUnload { | |
// Relinquish ownership of anything that can be recreated in viewDidLoad or on demand. | |
// For example: self.myOutlet = nil; | |
} | |
- (void)dealloc | |
{ | |
[redFlowers release]; | |
[blueFlowers release]; | |
[super dealloc]; | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment