2014-10-17 5 views
3

программно создал UISearchController и установить название кнопок области видимости в viewDidLoadscopeBar не показывает под UISearchBar, когда он активен в первый раз

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; 

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

first time search, scope bar don't show second time search, scope bar shows

ответ

-1

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

1

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

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

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