2014-11-13 3 views
1

UISearchDisplayController осуждается в IOS 8 (UISearchDisplayDelegate также не рекомендуется.) Так что теперь я не могу использовать следующий метод делегата:UISearchController получить индекс SearchScope

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller 
shouldReloadTableForSearchScope:(NSInteger)searchOption 

я могу использовать только UISearchResultsUpdating метод делегата:

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController 

Мой вопрос заключается в том, как я могу узнать, когда изменился поиск, и какой элемент выбран сейчас, если у меня есть ссылка только на UISearchController. Я искал подходящую недвижимость, но не нашел. Благодарю.

ответ

0

Использование UISearchBarDelegate

Во-первых, убедитесь, что ваш View Controller реализации протокола UISearchBarDelegate как:

class ViewController: UITableViewController, UISearchResultsUpdating, UISearchBarDelegate { 
//code 
} 

установить делегат:

controller.searchBar.delegate = self 

затем реализовать следующий метод:

func searchBar(searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) { 
    let scopeTitles = searchBar.scopeButtonTitles as [String] 
    let scope = scopeTitles[selectedScope] 
    println(scope) 
} 
Смежные вопросы