2010-08-23 2 views
30

Я хочу закрыть свой UISearchDisplayController, когда пользователь нажимает кнопку «Поиск», так как я загружаю новые данные из Интернета. Как закрыть программу программно? У меня уже есть правильный метод, но не знаю, как это сделать.Как я могу закрыть программу UISearchDisplayController?

Я думал, что ниже будет работать, но я ошибаюсь.

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [self.searchDisplayController finalize]; 
} 

ответ

68
[self.searchDisplayController setActive:NO animated:YES]; 

Наслаждайтесь.

+1

Спасибо большое .. отлично работает и в 2012 году :) – Xtrician

+0

это не сработало для меня. Я сказал, как только пользователь нажал где-то в - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {[self.searchDisplayController setActive: NO animated: YES];} Но это не позволяло этому уйти. Этот метод получил вызов, но результата нет. – coolcool1994

+0

Отлично. Я использую это в viewWillDisappear. Только то, что мне было нужно. –

3

Вы должны убедиться, что вы установили активный ложь на главной теме:

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.searchDisplayController setActive:NO animated:YES]; 
}); 
2
func setActive(_ visible: Bool, 
    animated animated;: Bool) 

Если вы используете скор.

+0

Собственно, для Swift свойство 'active' – gigo

Смежные вопросы