2013-02-11 50 views
6

मेरे पास searchDisplayController लागू होने के साथ UITableView है। जब मैं खोज क्षेत्र में पाठ, खोज परिणाम ठीक प्रदर्शित कर रहे हैं प्रवेश मैंखोज के दौरान UITableView को छुपाएं ResultsTableView प्रदर्शित

tableView.backgroundColor = [UIColor clearColor]; 

और

self.searchDisplayController.searchResultsTableview.backgroundColor = [UIColor clearColor]; 

है, लेकिन के रूप में परिणामी तालिका की पृष्ठभूमि पारदर्शी है, मैं देख रहा हूँ मेरी tableview और tableview पर खोज परिणाम तालिका प्रदर्शित होती है। जब मैं खोज फ़ील्ड संपादन शुरू कर रहा हूं तो मैं tableView को छिपाना चाहता हूं। मैंने कोशिश की है

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller 
shouldReloadTableForSearchString:(NSString *)searchString 
{ 
    [tableView setHidden:YES]; 
    [self filterContentForSearchText:searchString 
           scope:[[self.searchDisplayController.searchBar scopeButtonTitles] 
             objectAtIndex:[self.searchDisplayController.searchBar 
                selectedScopeButtonIndex]]]; 

    return YES; 
} 

लेकिन यह तालिका दृश्य के साथ खोजबार को छुपाता है। इसे कैसे जोड़ेंगे?

+0

यू कहाँ UISearchBar जोड़ने ??? UITableView पर ??? – iPatel

+0

हां, मैंने एक UISearchDisplayController खींच लिया है और तालिका में सर्चबार जोड़ा है – tausun

+0

आपको बहुत धन्यवाद, यह काम करता है। – tausun

उत्तर

2

सबसे पहले मुझे पता है कि आप UITableView पर searchDisplayController जोड़ने ।

यह निकालें करें और अपना UISearchDisplayController पर अपने देखें नियंत्रक नहीं पर UITableView जोड़ें, क्योंकि अगर आप UITableView तो छिपाने UISearchDisplayController भी छिपाने क्योंकि आप UITableView पर UISearchDisplayController गयी।

धन्यवाद :)

0

सब से पहले तालिका आउटलेट बनाने के लिए और टेबल से कनेक्ट करें तो कोड

tableView.hidden=TRUE; 

यह काम करेंगे की इस पंक्ति का प्रयास करें ....

+0

तालिका दृश्य पहले से ही एक आउटलेट है और जुड़ा हुआ है। और मैं वही काम कर रहा था जो आपने पोस्ट किया है। – tausun

2

आप कर सकते हैं सेटअप इस तरह से tableView के लिए डेटा स्रोत है कि यह 0 वर्गों लौटाता है जब खोज इंटरफ़ेस दिख रहा है: छुपा के बजाय

- (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView 
{ 
    if (self.searchDisplayController.active && 
     (tableView != self.searchDisplayController.searchResultsTableview)) 
     return 0; // return 0 for bottom table view if search interface is active 
    else 
     return <your usual number of sections> 
} 

और फिर अपने तालिका दृश्य, आप सभी सामग्री को छिपाने के लिए [tableView reloadData] कर सकते हैं। फिर खोज समाप्त होने के बाद, फिर से सामग्री दिखाने के लिए तालिका दृश्य को फिर से लोड करें।

तालिका दृश्य को फिर से लोड करने से सभी तालिका दृश्य कक्षों और तालिका दृश्य की सामग्री ऑफसेट को रीसेट कर दिया जाएगा, इसलिए कुछ मामलों में ऐसा करना एक अच्छा विचार नहीं हो सकता है।

वैकल्पिक रूप से, आप ऐसा तालिका दृश्य का दृश्य कोशिकाओं के सभी के माध्यम से पुनरावृति और उन्हें छिपाने के लिए कोशिश कर सकते:

for (UITableViewCell *cell in tableView.visibleCells) 
{ 
    cell.hidden = YES; 
} 
+0

मैंने पहले इस प्रक्रिया के बारे में सोचा था, लेकिन मुझे एक आसान समाधान की आवश्यकता थी। आपके प्रतिक्रिया के लिए धन्येवाद। – tausun