iOS uiTableViewController use
1 AppDelegate.h
#import <UIKit/UIKit.h>
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@property (strong,nonatomic) UINavigationController *navigationController;
@end
2 AppDelegate.m
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;
@synthesize navigationController=_navigationController;
- (void)dealloc
{
[_window release];
[_viewController release];
[_navigationController release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
ViewController *vc = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.navigationController=[[[UINavigationController alloc] initWithRootViewController:vc]autorelease];
self.navigationController.title=@"test";
//add shade under navigation bar
self.navigationController.navigationBar.tintColor=NAVBAR_COLOR;
UIImageView *shader=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"top_shader"]];
shader.frame=CGRectMake(0, 64, self.navigationController.view.frame.size.width, 16);
shader.autoresizingMask=UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleWidth;
[self.navigationController.view addSubview:shader];
[shader release];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
3 viewcontroller.h
@interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>
{
NSArray *categary;
UITableView *tableview;
}
@property (nonatomic,retain) NSArray *categary;
@end
4.viewcontroller.m
#import "ViewController.h"
@implementation ViewController
@synthesize categary;
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImage *img = [UIImage imageNamed:@"app_bg.png"];
self.view.backgroundColor=[UIColor colorWithPatternImage:img];
self.navigationItem.title=@"@title";
self.categary=[NSArray arrayWithObjects:@"aa",@"bb",@"cc", nil];
tableview=[[UITableView alloc] initWithFrame:self.view.bounds];
tableview.dataSource=self;
tableview.delegate=self;
[self.view addSubview:tableview];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (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];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
//navigate
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [self.categary count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
if (cell==nil) {
cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text=[self.categary objectAtIndex:indexPath.row];
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
//点击一个CELL,跳转到下一窗口
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// 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];
*/
// SubViewController *subViewController=[[SubViewController alloc] initWithNibName:@"SubViewController" bundle:nil];
//
// [self.