Отключить Popover от SearchDisplayController - PullRequest
1 голос
/ 26 мая 2011

Я запрограммировал SearchBar, но не в построителе интерфейса b <перетаскивая поиск в tableView.SearchResult был показан в другом TabelView.Поиск отлично работает.Но каждый раз, когда я ищу, он показывает мне этот Поповер SearchResult.Могу ли я удалить этот Popover? </p>

[SetShowsSearchResultsButton self.searchDisplayController.searchBar: NO]; Он также не работает

, здесь есть код

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
    [appDelegate.searchSource removeAllObjects];
    if (0  == [searchString length]) {
        NSLog(@"LEER");
        appDelegate.gefunden=NO;
        [appDelegate.rootViewController.tableView.tableView reloadData];
        [SearchBar1 resignFirstResponder];
    }
    for (NSArray *myPoi in appDelegate.poiList)
    {
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SELF contains[c] %@)", searchString];
        BOOL resultName = [predicate evaluateWithObject:[myPoi valueForKey:@"name"]];
        if (resultName) {
            appDelegate.gefunden = YES;
            [appDelegate.searchSource addObject:myPoi];
            [appDelegate.rootViewController.tableView.tableView reloadData];
            [self.searchDisplayController setActive:NO animated:YES];
            [self.SearchBar1 becomeFirstResponder];
        }
    }
    return YES;
}

и в viewdidload

self.searchDisplayController.searchResultsDataSource = appDelegate.rootViewController.tableView.tableView.dataSource;

Спасибо

Ответы [ 2 ]

1 голос
/ 17 июня 2014

Вы можете сделать это, установив контроллер в неактивное состояние после окончания поиска:

- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller{

    [controller setActive:NO animated:YES];
}
1 голос
/ 27 мая 2011

В IB попытайтесь установить значения searchResultsDelegate, searchResultsDataSource, searchContentsController вашего SearchDisplayController для Владельца файлов и поместить код из

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

до

- (void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)searchText

Это должно сработать.

...