#import <UIKit/UIKit.h>MyTableAppDelegate.m
#import "MyTableViewController.h"
@interface MyTableAppDelegate : NSObject{
UIWindow *window;
MyTableViewController *myTableViewController; //custom class that extends UITableViewController
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
#import "MyTableAppDelegate.h"
@implementation MyTableAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//call the custom class initializer
myTableViewController = [[MyTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
myTableViewController.view.frame = [UIScreen mainScreen].applicationFrame;
//add to the main window
[window addSubview:myTableViewController.view];
// Override point for customization after application launch
[window makeKeyAndVisible];
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
#import <Foundation/Foundation.h>
@interface MyTableViewController : UITableViewController {
NSMutableArray *names; //table view data
}
@end
#import "MyTableViewController.h"
@implementation MyTableViewController
- (id)initWithStyle:(UITableViewStyle)style {
self = [super initWithStyle:style];
if(self) {
names = [[NSMutableArray alloc] initWithObjects:@"Ichi", @"Ni", @"San", nil];
}
return self;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DefaultCell"];
if(cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"DefaultCell"] autorelease];
}
cell.text = [names objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {
return [names count];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [NSString stringWithFormat:@"Section %i", section];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *name = [names objectAtIndex:indexPath.row];
NSString *title = [NSString stringWithFormat:@"%@ selected!", name];
UIAlertView *view = [[UIAlertView alloc] initWithTitle:title message:@"Pressed" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[view show];
[view release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellAccessoryDisclosureIndicator;
}
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", nil];
}
- (void) dealloc
{
[names release];
[super dealloc];
}
@end