मैं अपने कोर डेटा डेटाबेस में अपने दिमाग से बाहर निकलने वाला हूं, मेरे पास बहुत सारे उपयोगकर्ता हैं, मैंने डेटाबेस को NSFetchedResultController के माध्यम से एक टेबलव्यू कंट्रोलर पर लगाया है, और जब दृश्य लोड होता है, तो मैं अपने सभी उपयोगकर्ताओं को देखता हूं, और मैं स्टोरीबोर्ड सेग्यू के माध्यम से एक विस्तार दृश्य नियंत्रक को धक्का दे सकता हूं ... अब तक भगवान, मेरे टेबलव्यू में एक कस्टम दृश्य है जिसमें एक छवि दृश्य और 2 uitextlabels हैं जिनके पास उनके टैग मान असाइन किए गए हैं ..UISearchDisplayController- मेरे खोज परिणाम दृश्य में खाली कोशिकाएं क्यों होती हैं?
अब, जब मैं खोज करें जो मैं एक नया NSFetchedResultController को भविष्यवाणी के साथ बनाता हूं, और प्रदर्शन फ़ेच करता है .. फिर मुझे fetchedObjects प्रॉपर्टी मिलती है और इसमें उन उपयोगकर्ताओं को शामिल किया जाता है जो मेल खाते हैं, इसलिए खोज अनुरोध एक आकर्षण की तरह काम कर रहा है .. मेरे सभी टेबलव्यू डेटा स्रोतों में। जांचें कि self.tableView == self.searchdispl.view यह देखने के लिए कि कौन से नियंत्रक से मुझे डेटा पूछना चाहिए .. सभी सह में ntrollers प्रतिनिधि मैं यह देखने के लिए जांचता हूं कि कौन सा नियंत्रक सक्रिय है इसलिए मुझे पता है कि पुनः लोड करने के लिए कौन सा दृश्य है। यदि मैं बहुत सारे डेटा को एनएसब्लॉग करता हूं तो दृश्यों के पीछे यह ठीक है, प्रतिनिधि और डेटासोर्स विधियां सभी सही दृश्य और fetchcontroller का उपयोग करते हैं ..
मेरे सेल में ForRowAtIndexPath मैं अपना user.name लॉग आउट कर सकता हूं, और यह हमेशा सही होता है खोज करते समय भी।
समस्या यह है कि UISearchDisplayController दृश्य जो शीर्ष पर है केवल खाली कक्ष है, जब तक कि मैं अपने UITableViewControllers गतिशील प्रोटोटाइप सेल को मूलभूत रूप से सेट नहीं करता, तब दोनों तालिकादृश्यों में उपयोगकर्ता नाम के साथ वह लेबल होता है! सेल से segue अभी भी काम नहीं करता है, लेकिन सेल में डेटा है।
ऐसा लगता है UISearchDisplayControllers दृश्य के रूप में एक सामान्य दृश्य है, कम से कम जब यह segues के लिए और सेल लेआउट ...
मैं अपने UITableViewController करने UISearchDisplayController से सभी कनेक्शनों की जाँच कर ली आता है, और सब ठीक लग रहा है। ..
SearchDisplayControllers क्यों मेरे सेल लेआउट और segue स्वीकार नहीं करेंगे?
धन्यवाद :)
अद्यतन: बस पता लगा है क्या गलत हो रहा है, लेकिन अभी तक समाधान नहीं मिला। मेरे सेल में ForRowAtIndexPath सेल को हमेशा डिफ़ॉल्ट सेल के रूप में कॉन्फ़िगर किया जाता है जब इस खोज में thr searchdisplayview है .. क्या मुझे वास्तव में uisearchdisplay के लिए कोड में अपना सेल बनाने की आवश्यकता है? यह स्टोरीबोर्ड से कॉन्फ़िगर किए गए सेल का उपयोग क्यों नहीं कर सकता?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"PersonCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSLog(@"Default Cell");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSFetchedResultsController *controller = tableView == self.tableView ? self.fetchedResultsController : self.fetchedResultsControllerForSearch;
Person *p;
p = [controller objectAtIndexPath:indexPath];
[(UILabel*) [cell viewWithTag:1] setText:p.name];
[(UILabel*) [cell viewWithTag:2] setText:@"Status"];
if(p.avatarImage){
UIImage *avatar = [[UIImage alloc] initWithData:p.avatarImage];
[(UIImageView *) [cell viewWithTag:3] setImage:avatar];
}
return cell;
}
ठीक है, मैं बस यह कहूंगा कि क्या गलत था, मैं थोड़ा शर्मिंदा हूं, लेकिन शायद यह पोस्ट दूसरों की मदद कर सकता है :) मुद्दा यह था कि जब मुझे मिला cellforrowatindexpath में सेल, इसे मूल व्यू कंट्रोलर टेबलव्यू से नहीं मिला, इसलिए मैंने UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier] से लाइन बदल दी; UITableViewCell * सेल = [स्वयं।tableView dequeueReusableCellWithIdentifier: CellIdentifier] ;, और अब सब अच्छा है, सेल में स्टोरीबोर्ड से लेआउट है और segues एक आकर्षण की तरह काम करता है :) –
यह वास्तव में काम करता है, आपको इसे अपने स्वयं के प्रश्न के उत्तर के रूप में पोस्ट करना चाहिए था! –