2010-12-10 137 views
0

我是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 
+0

根據您的需要,您應該考慮加載資源(尤其是你的橫幅)。所有這些預加載都會佔用很多內存,特別是因爲您多次加載相同的圖像。 – ughoavgfhw 2010-12-19 01:13:09

回答