UISearchBarController , , - UISearchBar - UISearchDisplayController !
UISearchBar UISearchBarDelegate , , , .
.
-
- ,
- ,
- , .
- ,
- (void)filterContentForSearchBar:(UISearchBar *)searchBar
{
NSString *scope = [[searchBar scopeButtonTitles] objectAtIndex:[searchBar selectedScopeButtonIndex]];
NSString *search = [searchBar text];
NSMutableArray *predicates = [[NSMutableArray alloc] init];
if ([scope isEqualToString:@"Selected"])
{
[predicates addObject:[NSPredicate predicateWithFormat:@"selected == 1"]];
}
if (search && search.length) {
[predicates addObject:[NSPredicate predicateWithFormat:@"name contains[cd] %@", search]];
}
NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:predicates];
self.filteredObjectList = [self.objectList filteredArrayUsingPredicate:predicate];
[self.myTableView reloadData];
}
#pragma mark - UISearchBarDelegate Methods
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
searchBar.showsCancelButton = true;
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
searchBar.showsCancelButton = false;
[searchBar resignFirstResponder];
searchBar.text = nil;
[self filterContentForSearchBar:searchBar];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
searchBar.showsCancelButton = false;
[searchBar resignFirstResponder];
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[self filterContentForSearchBar:searchBar];
}
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
[self filterContentForSearchBar:searchBar];
}
:)