注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

表视图中增加搜索栏  

2013-04-13 18:15:14|  分类: ios开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在表视图中增加搜索栏,实现搜索功能,代码如下:

@implementation RecipeBookViewController{

    NSArray *recipes;

    NSArray *searchResults;

}


@synthesize theTableView;


#pragma mark search filter

-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope

{

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", searchText];


    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];

}


-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString

{

    [self filterContentForSearchText:searchString scope:nil];

    

    return YES;

}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

    if(tableView == self.searchDisplayController.searchResultsTableView)

    {

        [self performSegueWithIdentifier:@"showRecipeDetail" sender:self];

    }

}


#pragma  mark -


#pragma mark viewDidLoad

- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    // Initialize table data

     recipes = [NSArray arrayWithObjects:@"全聚德烤鸭", @"鱼香肉丝", @"老北京炖豆腐",@"扬州炒饭",@"  ",@"宫保鸡丁",@"宫保鱼片",@"西红柿蛋汤",@"土豆丝",@"剁椒鱼头",@"鱼块粉条",@"鱼香茄子煲",@"牛肉粉丝",@"南翔小笼",@"过桥米线",@"热干面",@"葱香鲫鱼", nil];

}

#pragma mark -


- (void)viewDidUnload

{

    [super viewDidUnload];

    // Release any retained subviews of the main view.

}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    if(tableView == self.searchDisplayController.searchResultsTableView)

    {

        return [searchResults count];

    }

    

    return [recipes count];

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *simpleTableIdentifier = @"RecipeCell";

    

    // Returns a reusable table-view cell object located by its identifier.

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    

    if(cell == nil){

        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];

    }

    

    if(tableView == self.searchDisplayController.searchResultsTableView)

    {

        cell.textLabel.text = [searchResults objectAtIndex:indexPath.row];

    }

    else

    {

        cell.textLabel.text = [recipes objectAtIndex:indexPath.row];

    }

    return cell;

}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if([segue.identifier isEqualToString:@"showRecipeDetail"]){

        NSIndexPath *indexPath = nil;

        RecipeDetailViewController *destViewController = segue.destinationViewController;

        

        if([self.searchDisplayController isActive])

        {

            indexPath = [self.searchDisplayController.searchResultsTableView indexPathForSelectedRow];

            destViewController.recipeName = [searchResults objectAtIndex:indexPath.row];

        }

        else

        {

            indexPath = [self.theTableView indexPathForSelectedRow];

            destViewController.recipeName = [recipes objectAtIndex:indexPath.row];

        }

    }

}



  评论这张
 
阅读(58)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017