2012-02-22 11 views
12

मैंने एक NSFetchedResultsController का उपयोग करके एक UITableView सेटअप किया है जो कई प्रोटोटाइप UITableViewCells प्रदर्शित करता है। मैंने अपने UITableViewCell से मेरे DetailViewController पर एक पुश segue लगाया है।readyForSegue नहीं कहा जाता है जब UITableView पंक्ति चयनित होती है?

मेरी TableViewController में मैं लागू कर दिया है दोनों:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSLog(@"%s", __PRETTY_FUNCTION__); 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    NSLog(@"%s", __PRETTY_FUNCTION__); 
} 

जब मैं आवेदन चलाने के लिए और tableView में एक पंक्ति पर क्लिक करें अपने आवेदन केवल कॉल:

[TableViewController tableView:didSelectRowAtIndexPath:] 
[TableViewController tableView:didSelectRowAtIndexPath:] 
[TableViewController tableView:didSelectRowAtIndexPath:] 

अगर मैं segue हटा सकते हैं और इसे पुनर्निर्मित करें UIVarButtonItem को DetailViewController पर करें, तो segue सही ढंग से कहा जाता है, क्या कोई सोच सकता है कि मुझे क्या याद आ रही है?

संपादित करें:

जोड़ा गया:

- (IBAction)tester:(id)sender { 
    [self performSegueWithIdentifier:@"SEGTEST" sender:nil]; 
} 

और एक UIButtonBarItem कि "परीक्षक" कहा जाता है पर्यत यह जुड़ा हुआ है और यह काम करता है, मैं सिर्फ यह अभी भी आग जब मैं UITableViewCell से लिंक नहीं मिल सकता है नियंत्रक के लिए।

+0

नीचे दिए गए मेरे उत्तर की तरह। क्यों न केवल इसे ViewController से ViewController से लिंक करें और इसे didSelectCell विधि में कॉल करें? – Darren

+0

मुझे लगता है कि मैं अनुमान लगा सकता था कि मैं फायरिंग क्यों नहीं कर रहा था। मेरे बीच एक और वर्किंग वर्जन के बीच एकमात्र अंतर यह है कि यह संस्करण कोर डेटा और यूआईएफटेड रीसेट कंट्रोलर का उपयोग करता है, हालांकि मैं नहीं देख सकता कि इससे कोई फर्क नहीं पड़ता। – fuzzygoat

उत्तर

31

कुछ खुदाई के बाद मुझे अंततः पाया गया कि UITableViewCell पहचानकर्ता को CELL_ID "पर गलत तरीके से सेट किया गया था जब यह" PLANTCELL_ID "होना चाहिए था।

जो पता चलता है कि एक UITableView में एक UITableViewCell का चयन जुड़े segue, अपने सेल पहचानकर्ता दोनों स्टोरीबोर्ड और tableView:cellForRowAtIndexPath: में ठीक से सेट है जांच करता है, तो फोन नहीं करता है किसी और के लिए

सोम।

6

ViewController से अपने सेग्यू को रिवायर करें और इसे एक नाम दें। फिर didSelectRow विधि कॉल

[self performSegueWithIdentifier:@"yourSegueName"];  

करें और देखें कि यह आग में।

+0

यह वास्तव में आग लग रहा है, लेकिन हम तत्काल दृश्य/दृश्य में डेटा कैसे पास करते हैं। –

+0

आप readyForSegue विधि तैयार करते हैं। – Darren

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