2010-08-23 17 views
30

जब मैं वेब से नया डेटा लोड कर रहा हूं तब से उपयोगकर्ता "खोज" बटन पर क्लिक करता है, तो मैं अपना UISearchDisplayController बंद करना चाहता हूं। मैं नियंत्रक को प्रोग्रामिक रूप से कैसे बंद करूं? मेरे पास पहले से ही उचित विधि है, लेकिन यह नहीं पता कि इसे कैसे किया जाए।मैं UISearchDisplayController प्रोग्रामेटिक रूप से कैसे बंद करूं?

मैंने सोचा कि नीचे काम करेगा, लेकिन मैं गलत हूं।

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

उत्तर

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

का आनंद लें।

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.searchDisplayController setActive:NO animated:YES]; 
}); 
+1

आपको बहुत बहुत धन्यवाद .. 2012 में भी बहुत अच्छा और सहायक काम कर रहा है :) – Xtrician

+0

यह मेरे लिए काम नहीं करता है। मैंने कहा कि एक बार जब उपयोगकर्ता कहीं भी टैप करता है - (शून्य) तालिका दृश्य: (UITableView *) तालिका दृश्य किया गया चयन करेंउट इंडेक्सपैथ: (एनएसआईएनएक्सएक्सपीएथ *) इंडेक्सपाथ {[self.searchDisplayController setActive: कोई एनिमेटेड नहीं: हाँ];} लेकिन इसने इसे जाने नहीं दिया। इस विधि को बुलाया गया लेकिन कोई परिणाम नहीं मिला। – coolcool1994

+0

बिल्कुल सही। मैं इसे देखने में उपयोग कर रहा हूं। मुझे जिस चीज की जरूरत थी। –

3

आप आप मुख्य थ्रेड पर गलत पर सक्रिय सेट सुनिश्चित करने की आवश्यकता।

2
func setActive(_ visible: Bool, 
    animated animated;: Bool) 

आप तेजी से उपयोग कर रहे हैं:

+0

असल में, स्विफ्ट के लिए संपत्ति 'सक्रिय' है – gigo

संबंधित मुद्दे

 संबंधित मुद्दे