2012-04-29 11 views
13

इससे पहले कि मैं करने के लिए सेल व्यवहार बदलने के लिए कोशिश कर रहा हूँ होती है: 1) जब सेल टेप, मार्क सेल एक जाँच चिह्न 2) जब विस्तार से प्रकटीकरण गौण बटन उपयोग किया जाता है के साथ के रूप में पूरा, सेगु का प्रदर्शन करें। 3) tableView में: didSelectRowAtIndexPath: मेरे पास है:, क्यों prepareForSegue didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    AWDelivery *delivery = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
    [delivery toggleDelivered: delivery]; 
    [self configureCheckmarkForCell:cell withDelivery:delivery]; 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    if (debugging) NSLog(@"[%s] [%d]", __PRETTY_FUNCTION__, __LINE__); 
} 

deselectRowAtIndexPath segue बायपास करने के लिए माना जाता है, लेकिन यह नहीं है।

NSLogs: क) 2012-04-29 18: 50: ००.८४८ प्रसव [3148: fb03] [- [DeliveryTVC prepareForSegue: इस:]] [168] 2012-04-29 18 ख): 50: 01.245 डिलिवरी [3148: एफबी03] [- [डिलिवरी टीवीसी तालिका दृश्य: किया गया चयन करेंआंड इंडेक्सपैथ:]] [9 3]

ध्यान दें कि 'prepfelect' 'readyForSegue' के बाद होता है।

किसी भी संकेत की सराहना की जाएगी।

+0

आप अपने कोड का हिस्सा बता सकते हैं। मेरे साथ भी वही दिक्कत है। धन्यवाद। – applefreak

+0

बहुत यादृच्छिक लेकिन आपके कोड उदाहरण से, मैंने '__PRETTY_FUNCTION__' और' __LINE__' मैक्रोज़ के बारे में सीखा। धन्यवाद! – Guven

उत्तर

14

क्या आपके पास टेबल व्यू सेल से जुड़ा हुआ विवरण है? इसके बजाय, इसे दो दृश्य नियंत्रकों के बीच खींचने का प्रयास करें (जिसमें टेबल वाला एक और वह स्थान जहां आप जाना चाहते हैं)।

फिर इसे मैन्युअल रूप से करें ([self performSegueWithIdentifier:@"MySegue"];) जब tableView:accessoryButtonTappedForRowWithIndexPath:

+1

पैसे पर सही !!!!!!! वह छोटा कारखाना अधिक स्पष्ट होना चाहिए। – JJW

+0

क्या आप कृपया मैन्युअल रूप से सीगू करने के लिए कुछ कोड जोड़ सकते हैं! मेरे पास एक ही समस्या है जहां मैं सेल दृश्य को अगले दृश्य नियंत्रक को पास करना चाहता हूं। क्या आपका मतलब है मैन्युअल व्यू कंट्रोलर मैन्युअल रूप से प्रस्तुत करना या readyforsegue विधि तैयार करना? धन्यवाद। – applefreak

+1

निश्चित रूप से, आपको नियंत्रक को देखने में जो भी आवश्यकता है, कहें: [self performSegueWithIdentifier: @ "MySegue"]; उस स्ट्रिंग को आईबी में सेग्यू के लिए सेट किए गए पहचानकर्ता से मेल खाना चाहिए। अगर आपको अतिरिक्त विवरण की आवश्यकता है तो मुझे बताएं। – danh

6

यदि आपको तैयार करने के लिए वर्तमान तालिकादृश्य चयन प्राप्त करने की आवश्यकता है, तो आप इसे UITableViewController की तालिका तक पहुंचकर प्राप्त कर सकते हैं Ivar;

[self tableView] indexPathForSelectedRow] 
+0

एक्सेसरी बटन को टैप करने से सेल का चयन नहीं होता है, इसलिए indexpath.row टैप किए गए एक्सेसरी के लिए सही सेल से मेल नहीं खाता है। – swampf0etus

1
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Make sure your segue name in storyboard is the same as this line 
    if ([[segue identifier] isEqualToString:@"ClaimDetailsSeque"]) 
    { 
     DLog(@"destinationViewController %@",[[segue destinationViewController] topViewController]); 
     //This syntax is needed when the seque is going through a Navagation Controller 
     ClaimDetailsFormViewController* vc = (ClaimDetailsFormViewController*)[[segue destinationViewController] topViewController]; 

     //This the the way to get the object from the selected row via the FetchedResultsController 
     //this is needed because prepareForSegue is called before didSelectRowAtIndexPath 
     NSIndexPath *selectedIndexPath = [self->claimTableView indexPathForSelectedRow]; 
     ClaimHistory *object = [[self claimHistoryFetchedResultsController] objectAtIndexPath:selectedIndexPath]; 

     MyClaimHistorySM *myCH = [MyClaimHistorySM new]; 

     myCH.policyNumber = object.policyNumber; 
     myCH.policyStatus = object.policyStatus; 
     myCH.claimNumber = object.claimNumber; 
     myCH.insuredName = object.insuredName; 
     myCH.lossDescription = object.lossDescription; 
     myCH.dateOfLoss = object.dateOfLoss; 
     myCH.incidentCloseDt = object.incidentCloseDt; 

     vc.claimHistorySM = myCH; 

    } 

} 

Seque on Storyboard

+0

टेबल व्यू सेल का चयन करके और नेविगेशन कंट्रोलर को ट्रिगर किए गए सेग्यूज़ चयन "कनेक्टर" को खींचकर आईबी में सीगू बनाया गया था। –

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