我该如何添加搜索栏?

时间:2010-12-10 01:31:14

标签: iphone search uitableview navigationcontroller

我是xcode的新手并且已经搜索了教程,但大多数只是提供如何使用他们的代码并使其搜索,我已经有一个应用程序,并希望在其中实现搜索栏。我想知道有人能指出我正确的方向吗?这是.m

#import "RootViewController.h"
#import "AppDelegate.h"
#import "DetailViewController.h"

@implementation RootViewController

#pragma mark -
#pragma mark Synthesizers

@synthesize table;
@synthesize sitesList;
@synthesize imagesList;
@synthesize descArray;
@synthesize bannerImages;
@synthesize childController;

#pragma mark -
#pragma mark View methods

- (void)viewDidLoad {

    NSArray *sites = [[NSArray alloc] initWithObjects:
                      @"#1 or NUMBER ONE",
                      @"#2 or NUMBER TWO",
                      @"#3 or NUMBER THREE",
                      @"1 or ONE",
                      @"10-100,10-1,10-200,10-2,10-4 and 20",
                      @"1000H PAPER",
                      @"129 or HEAVY FROST",
                      @"18% GRAY or GREY CARD",
                      @"180 DEGREE RULE",
                      @"2 or TWO",
                      @"214 or FULL TOUGH SPUN",
                      @"215 or HALF TOUGH SPUN",
                      @"216 or FULL WHITE DIFFUSION",
                      @"220 or WHITE FROST",
                      @"229 or QUARTER TOUGH SPUN",
                      @"250 or HALF WHITE DIFFUSION",
                      @"251 or QUARTER WHITE DIFFUSION",
                      @"252 or EIGHTH WHITE DIFFUSION",
                      @"253 or FULL HAMPSHIRE",
                      @"254 or NEW HAMPSHIRE",
                      @"255 or HOLLYWOOD FROST",
                      @"256 or HALF HAMPSHIRE FROST",
                      @"257 or QUARTER HAMPSHIRE FROST",
                      @"258 or EIGHTH HAMPSHIRE FROST",
                      @"3200K or TUNGSTEN",
                      nil];
    self.sitesList = sites;

    [sites release];



    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Descriptions" ofType:@"plist"];

    NSArray *desc = [[NSArray alloc] initWithContentsOfFile:filePath];

    self.descArray = desc;

    [desc release];



    UIImage *texas = [UIImage imageNamed:@"1andtexas.jpg"];
    UIImage *cali = [UIImage imageNamed:@"2andcalifornia.jpg"];
    UIImage *ny = [UIImage imageNamed:@"3andnewyork.jpg"];
    UIImage *tmark = [UIImage imageNamed:@"1Tmark.jpg"];
    UIImage *walkie = [UIImage imageNamed:@"Walkietalkie.jpg"];
    UIImage *onekh = [UIImage imageNamed:@"Tracingpaper.jpg"];
    UIImage *onetwonine = [UIImage imageNamed:@"diffusion.jpg"];
    UIImage *greycard = [UIImage imageNamed:@"Greycard.jpg"];
    UIImage *oneeighty = [UIImage imageNamed:@"Oneeighty.jpg"];
    UIImage *two = [UIImage imageNamed:@"Two.jpg"];
    UIImage *twofourteen = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofifteen = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twosixteen = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twotwenty = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twotwentynine = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofifty = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftyone = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftytwo = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftythree = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftyfour = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftyfive = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftysix = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftyseven = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *twofiftyeight = [UIImage imageNamed:@"Diffusion.jpg"];
    UIImage *thirtytwohk = [UIImage imageNamed:@"3200k.jpg"];

    NSArray *banners = [[NSArray alloc] initWithObjects:texas,
                        cali,
                        ny,
                        tmark,
                        walkie,
                        onekh,
                        onetwonine,
                        greycard,
                        oneeighty,
                        two,
                        twofourteen,
                        twofifteen,
                        twosixteen,
                        twotwenty,
                        twotwentynine,
                        twofifty,
                        twofiftyone,
                        twofiftytwo,
                        twofiftythree,
                        twofiftyfour,
                        twofiftyfive,
                        twofiftysix,
                        twofiftyseven,
                        twofiftyeight,
                        thirtytwohk,
                        nil];

    self.bannerImages = banners;

    [banners release];

    [app release];
    [creat release];
    [free release];
    [net release];
    [rock release];
    [tuts release];
    [work release];
     */

    [super viewDidLoad];    
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Support all the orientations except for PortraitUpsideDown
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

#pragma mark -
#pragma mark Table view datasource methods

-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

// A-Z
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {

    NSMutableArray *toBeReturned = [[NSMutableArray alloc]init];
    for(char c = 'A'; c <= 'Z'; c++) [toBeReturned addObject:[NSString stringWithFormat:@"%c",c]];
    return toBeReturned;
}

-(NSInteger) tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
    return [sitesList count];
}

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CellIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Set the title for the cell
    cell.textLabel.text = [sitesList objectAtIndex:indexPath.row];

    cell.imageView.image = [imagesList objectAtIndex:indexPath.row];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    // Return the cell
    return cell;
}


#pragma mark -
#pragma mark Table view delegate methods

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50; // Default height for the cell is 44 px;
}

-(NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    return @"Flm Set Decipher";
}

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];

    detailVC.banner = [bannerImages objectAtIndex:indexPath.row];

    detailVC.description = [descArray objectAtIndex:indexPath.row];

    detailVC.title = [sitesList objectAtIndex:indexPath.row];

    self.childController = detailVC;

    [delegate.navigationController pushViewController:childController animated:YES];

    [detailVC release];

    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}


#pragma mark -
#pragma mark Memory Management

- (void)didReceiveMemoryWarning {
    NSLog(@"Memory warning!");
    [super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
    self.table = nil;
    self.sitesList = nil;
    self.imagesList = nil;
    self.descArray = nil;
    self.bannerImages = nil;
    self.childController = nil;
    [super viewDidUnload];
}

- (void)dealloc {
    [table release];
    [sitesList release];
    [imagesList release];
    [descArray release];
    [bannerImages release];
    [childController release];
    [super dealloc];
}

@end

1 个答案:

答案 0 :(得分:0)