UISearchBar in storyboard Xcode

uisearchbar, uistoryboard, uitableview

Solution

Use this tutorial iOS Quick Tip: Filtering a UITableView with a search bar

http://code-ninja.org/blog/2012/01/08/ios-quick-tip-filtering-a-uitableview-with-a-search-bar/

-(void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)text
{
if(text.length == 0)
{
    isFiltered = FALSE;
}
else
{
    isFiltered = true;
    filteredTableData = [[NSMutableArray alloc] init];

    for (Food* food in allTableData)
    {
        NSRange nameRange = [food.name rangeOfString:text options:NSCaseInsensitiveSearch];
        NSRange descriptionRange = [food.description rangeOfString:text options:NSCaseInsensitiveSearch];
        if(nameRange.location != NSNotFound || descriptionRange.location != NSNotFound)
        {
            [filteredTableData addObject:food];
        }
    }
}

[self.tableView reloadData];
}

Problem

I want to create searchBar for my table in storyboard xcode, everythings works for me and I don't have any error, just search doesn't work. I saw this two tutorial but still doesn't work. I cann't search. my tutorial: ``` -http://stackoverflow.com/questions/9897171/uisearchbar-implemented-with-storyboards -http://www.youtube.com/watch?v=IqDZHgI_s24 ``` would you please help me, Thanks in Advance! Here is my code CreateViewController.h ``` #import <UIKit/UIKit.h> @interface CreateViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource, UISearchBarDelegate> { // @property (weak, nonatomic) IBOutlet UISearchBar *searchBar; NSArray *datas; NSMutableArray *displayItems; IBOutlet UITableView * tableView; IBOutlet UISearchBar * searchbar; } @end ``` CreateViewController.m ``` #import "CreateViewController.h" @interface CreateViewController () @end @implementation CreateViewController - (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; datas = [NSMutableArray arrayWithObjects:@"Johan", @"Paul",@"George",@"Ringo", nil]; displayItems = [[NSMutableArray alloc] initWithArray:datas]; [super viewDidLoad]; } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } #pragma mark - Table view data source - (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 [datas count]; } - (UITableViewCell *)tableView:(UITableView *)atableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell";//This is the identifier in storyboard UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; } cell.textLabel.text = [datas objectAtIndex:indexPath.row]; return cell; } -(void)searchbar:(UISearchBar *)searchbar textDidChange:(NSString *)searchText{ if([searchText length] == 0){ [displayItems removeAllObjects]; [displayItems addObjectsFromArray:datas]; }else{ [displayItems removeAllObjects]; for(NSString * string in datas){ NSRange r = [string rangeOfString:searchText options:NSCaseInsensitiveSearch]; if (r.location != NSNotFound){ [displayItems addObject:string]; } } } [tableView reloadData]; } #pragma mark - Table view delegate - (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]; */ } @end ```

Original source