ScopeBar не отображается в UISearchBar, когда он активен в первый раз

Я программно создал UISearchController и установил заголовки кнопок области видимости в viewDidLoad.

UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
searchResultsController.tableView.dataSource = self;
searchResultsController.tableView.delegate = self;
[searchResultsController.tableView registerNib:musicNib forCellReuseIdentifier:@"MusicCell"];

self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
self.searchController.searchResultsUpdater = self;
UISearchBar *searchBar = self.searchController.searchBar;
searchBar.scopeButtonTitles = @[@"Album", @"Artist", @"Song"];
searchBar.showsScopeBar = YES;
searchBar.selectedScopeButtonIndex = 0;
searchBar.delegate = self;

self.tableView.tableHeaderView = self.searchController.searchBar;

Но когда я ищу в строке поиска при загрузке просмотра. полоса обзора не отображается. Второй я ищу в строке поиска, показывает панель области видимости. Что происходит?

поиск в первый раз, полоса обзора не отображаетсяповторный поиск, отображается полоса обзора


person yong ho    schedule 17.10.2014    source источник


Ответы (2)


Попробуй это:

searchBarDisplayController.searchBar.showsScopeBar = NO;
searchBarDisplayController.searchBar.scopeButtonTitles = nil;

Основываясь на вашем комментарии, поместите приведенный выше код в searchDisplayControllerWillBeginSearch: метод делегата. Это должно сработать.

person Faig Huseynov    schedule 31.03.2016

Вы можете удалить searchBar.showsScopeBar = YES;

person Jerry    schedule 03.03.2015