2010-08-23 26 views
30

Kullanıcı, web'den yeni veriler yüklediğimde "Ara" düğmesini tıkladığında UISearchDisplayController aracımı kapatmak istiyorum. Kontrol cihazını programatik olarak nasıl kapatırım? Zaten uygun yöntem var, ama nasıl yapacağımı bilmiyorum.UISearchDisplayController'ı program aracılığıyla nasıl kapatırım?

Aşağıdakilerin işe yarayacağını düşündüm, ama yanıldım.

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

cevap

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

keyfini çıkarın.

+1

Çok teşekkür ederim .. 2012'de harika ve yardımsever çalışanlar da :) – Xtrician

+0

bu benim için işe yaramadı. Kullanıcı bir kez - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {[self.searchDisplayController setActive: HAYIR animasyonlu: EVET];} Ama bir yere dokunun izin vermedi. Bu yöntem aradı ama sonuç yok. – coolcool1994

+0

Mükemmel. Bunu viewWillDisappear'da kullanıyorum. Tam ihtiyacım olan şey. –

3

Sen ana iş parçacığı üzerinde false aktif ayarlanmış emin olmak gerekir:

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

Eğer hızlı kullanıyorsanız.

+0

Aslında Swift için özellik aktif – gigo

İlgili konular