2012-08-03 14 views
5

यह बेहद निराशाजनक है: मैं खोज स्ट्रिंग खाली होने पर भी UISearchDisplayController में unfiltered परिणामों को प्रदर्शित करने का प्रयास कर रहा हूं।खोज स्ट्रिंग खाली होने पर UISearchDisplayTableView दिखाएं

numberOfSectionsInTableView: और numberOfRowsInSection: पर डिबग कोड जोड़ना दिखाता है कि जब मेरी खोज स्ट्रिंग खाली होती है, तो गैर-शून्य पूर्णांक वापस आ रहे हैं, लेकिन cellForRowAtIndexPath: कभी नहीं कहा जाता है! टेबलव्यू छुपा हुआ प्रतीत होता है।

मैंने searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView में कोई फायदा नहीं हुआ।

यह खींचना मुश्किल नहीं हो सकता है, मुझे लगता है कि यह करना एक बहुत ही आम बात है!

उत्तर

2

वैसे इसका समाधान UISearchDisplayController का उपयोग नहीं करना है। यह बस इस तरह कुछ करने के लिए आपको लचीलापन की पेशकश नहीं करता है। अधिकतम लचीलापन के लिए UISegmentedControl, UISearchBar और UITableView के साथ अपना स्वयं का कस्टम खोज इंटरफ़ेस बनाएं।

2

आप क्या कर सकते उपयोगकर्ता की खोज पर क्लिक करता है और स्ट्रिंग खाली परिवर्तन searchBartext है जब है करने के लिए "\ n" गाड़ी वापसी

self.searchDisplayController.searchBar.text = @"\n"; 

गाड़ी वापसी एक भी searchbar में प्रदर्शित नहीं किया जाता यह होगा एक ही स्ट्रिंग नहीं है, जैसे कि उपयोगकर्ता "\ n" टाइप करता है। तो यह ठीक काम करता है।

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 

विधि में आप searchbar पाठ वापस करने के लिए सेट कर सकते हैं @ ""। अगर सर्चस्ट्रिंग @ "\ n"

self.searchDisplayController.searchBar.text = @""; 

यही मेरे लिए काम किया गया है!

+0

जब भी मैं self.searchDisplayController.searchBar.text = @ "" सेट करता हूं; mustReloadTableForSearchString में यह काम नहीं करता है। मैं अपने प्लेसहोल्डर पाठ को देखने में सक्षम होने के लिए ऐसा करना चाहता था। कोई विचार? – DonnaLea

+0

मुझे आधा सोना होगा, क्योंकि यह अब काम करता है। यय – DonnaLea

+0

जब आपके पास खाली टेक्स्ट है, तो प्लेसहोल्डर टेक्स्ट हटा दिया जाएगा। @DonnaLea, क्या आप कृपया बता सकते हैं कि यह आपके लिए कैसे काम करता है – Sategroup

4

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मुझे नए आईओएस 8 यूआईएसएक्स कंट्रोलर के साथ एक ही समस्या थी। वर्कअराउंड यह जांचना है कि स्ट्रिंग खाली है या परिणाम तालिकादृश्य की संपत्ति HIDDEN = NO

+0

मुझे एक ही समस्या थी, लेकिन मेरा परिणाम तालिकादृश्य की संपत्ति छिपाई हमेशा बराबर होती है। – Allen

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