6

मुझे आश्चर्य है कि तालिका दृश्य पर नियंत्रण कैसे लेना है जिसका प्रयोग UISearchDisplayController द्वारा किया जाता है। आप की searchResultsTableView संपत्ति को ओवरराइट नहीं कर सकते हैं, क्योंकि यह केवल पढ़ने के लिए संपत्ति है।एक UISearchDisplayController की SearchResultsTableView को कैसे नियंत्रित करें?

मैंने कस्टम UITableView द्वारा searchResultsTableView ओवरले करने की कोशिश की है। यह सिर्फ एक बार काम करता है, लेकिन जैसे ही आप दूसरी खोज करने की कोशिश करते हैं, वास्तविक searchResultsTableView शीर्ष पर है। (मेरा मतलब है, आप searchBar में कुछ टेक्स्ट टाइप करते हैं, तो आपका कस्टम टेबल व्यू शीर्ष पर है और खोज परिणाम प्रदर्शित करता है, इसके बाद आप रद्द करें बटन दबाते हैं। अब, यदि आप इसे दोहराते हैं, तो आपकी कस्टम तालिका प्रदर्शित नहीं की जाएगी और UISearchDisplayController के searchResultTableView शीर्ष पर होंगे)।

बेशक, आप UISearchDisplayController के बिना इसे आजमा सकते हैं, लेकिन मैं इस कक्षा के फायदों पर भरोसा करता हूं, मैं बस tableView को कस्टमाइज़ करना चाहता हूं।

उत्तर

2

आप UISearchDisplayController पर एक TableViewDataSource संपत्ति है, इस डेटा स्रोत UITableViewCell पैदा करता है। UITableViewDataSource प्रोटोकॉल को लागू करने और आप विधि में tableView के अनुकूलन पर नियंत्रण होगा:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

6

आप searchResultsTableView सेट कर सकते हैं, लेकिन आप उचित प्रतिनिधि विधि में यह हेरफेर कर सकते हैं:

-(void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView { 
    tableView.backgroundColor = self.tableView.backgroundColor; 
    tableView.separatorColor = self.tableView.separatorColor; 
     ... 
+2

धन्यवाद फेलिक्स, मैं पहले से ही सफलतापूर्वक इस की कोशिश की है, लेकिन यह नहीं है कि मैं क्या करना चाहते हैं। मैं वास्तव में पसंद करूंगा अगर मैं UITableView का अपना उप-वर्ग सेट कर सकता हूं। मैं सिर्फ SearchResultsTableView के गुणों में हेरफेर नहीं करना चाहता हूं। – burki

+1

@ बुर्कि क्या आपने अपने UITableView उपclass का उपयोग करने का प्रबंधन किया था? मुझे भी यही तकलीफ़ है। – Adriana

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