2014-10-16 2 views
13

В моем проекте я использую tableViewController с внутренним UISearchController для фильтрации данных в моем TableView.Кнопка отмены в UISearchController

У меня нет проблем с фильтром данных, но мне нужно сделать дату моей таблицыView reload, когда я нажимаю кнопку CANCEL UISearchController, но я не могу найти метод делегирования для этого ... Можете ли вы помочь мне понять, как Для решения этой проблемы?

ответ

35

Вам необходимо установить делегат поиска пользователя UISearchController. После того, как вы это сделаете, будет вызываться добавление метода делегата searchBarCancelButtonClicked:.

self.searchController.searchBar.delegate = self; 

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { 
} 
+1

Немного объяснений было бы здорово! – gsamaras

+1

@ G.Samaras Это метод делегирования SearchBar ... SearchController непосредственно с помощью делегата searchbar, поэтому просто вызовите UISearchBarDelegate в заголовке файла и делегируйте поисковую строку (self.searchController.searchBar.delegate = self;) в viewDidLoad или другой метод, используемый в файле реализации ... Затем вы можете «вызвать код внутри метода делегирования SearchBar searchBarCancelButtonClicked и внутри указать функцию, которая должна запускать кнопку отмены. – kAiN

+0

@Gargoyle Спасибо за все! – kAiN

11

При реализации UISearchResultsUpdating протокола, вы можете знать, что отменен срабатывает, когда active является false.

func updateSearchResultsForSearchController(searchController: UISearchController) { 
    if !searchController.active { 
     print("Cancelled") 
    } 
}