13

मेरे पास एक UISearchDisplayController है जो मेरे UITableView के लिए हेडवर्व में है। मैं जब UISearchDisplayController के searchResultsTableView दिखाया गया है तो मैं कुछ अन्य संचालन कर सकते हैं जानना चाहता हूँ:मैं कैसे निर्धारित कर सकता हूं कि UISearchDisplayController की खोजResultsTableView दिखाई दे रही है या नहीं?

if(self.tableView == self.searchDisplayController.searchResultsTableView) 

रिटर्न सच हर समय भी जब searchResultsTableView दिखाया गया है। मैं इसे कैसे समझ सकता हूं?

उत्तर

35

यह चाल करना चाहिए।

[self.searchDisplayController isActive] 
+1

'[self.searchDisplayController isActive] 'आपको यह नहीं बताता कि' searchResultsTableView' दिखाया गया है या नहीं। यह आपको बताता है कि खोज सक्रिय कर दी गई है (उदाहरण के लिए, खोज बार पहला उत्तरदाता है), लेकिन यदि आप खोज बार में कोई मौजूदा टेक्स्ट हटाते हैं (लेकिन खोज मोड में बने रहें), तो 'searchResultsTableView' छुपा हो जाता है, लेकिन' isActive' जारी है हाँ वापस करने के लिए। – junjie

+0

@junjie क्या आप 'searchResultsTableView.hidden == NO' का सुझाव दे रहे हैं और अधिक सही होगा? – devios1

+2

@chaiguy मैं 'searchDisplayController.isActive' के अलावा 'searchDisplayController.searchBar.text.length'' की जांच करता हूं। क्यों नहीं 'SearchDisplayController.searchResultsTableView.hidden == नहीं'? मुझे याद नहीं है कि यह काम करता है, लेकिन दूसरा कारण यह है कि एक्सेसर 'searchResultsTableView' तालिका दृश्य को प्रारंभिक रूप से तब भी शुरू करता है जब उपयोगकर्ता खोज मोड में नहीं होता है। – junjie

3

UISearchDisplayController के लिए प्रतिनिधि विधियों का उपयोग करने के बारे में कैसे?

searchDisplayController:willShowSearchResultsTableView: 
searchDisplayController:didShowSearchResultsTableView: 
searchDisplayController:willHideSearchResultsTableView: 
searchDisplayController:didHideSearchResultsTableView: 

कोई कारण यह आपके लिए काम नहीं करेगा?

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

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