I have an NSMutableArray displayed in a UITableView, and I have added some elements there.
For example, element names are First, FirstTwo, Second, SecondTwo, Third, ThirdTwo.
Now I want to add a search bar in the screen. In that search bar when I type F, the table should only show First and FirstTwo.
How should I do this?
 searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
 searchBar.delegate = self;
 self.tableView.tableHeaderView = searchBar;
                        The best way to get the hang of this is by following a tutorial over here over here.
The part you are looking for, is this:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
   [tableData removeAllObjects];// remove all data that belongs to previous search
   if([searchText isEqualToString:@""]searchText==nil){
      [myTableView reloadData];
      return;
   }
   NSInteger counter = 0;
   for(NSString *name in dataSource)
   {
      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
      NSRange r = [name rangeOfString:searchText];
      if(r.location != NSNotFound)
      {
         if(r.location== 0)//that is we are checking only the start of the names.
         {
            [tableData addObject:name];
         }
      }
      counter++;
      [pool release];
   }
   [myTableView reloadData];
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With