2011-12-29 11 views
5

मेरे आवेदन में मैं UITableview का उपयोग कर रहा हूं। उस प्रतिनिधि विधि में मैंने चयन किया है अगर मैंने कोई ऑपरेशन किया है तो बस ऐसा नहीं हो सकता है।UITableview - tableView: didDeselectRowAtIndexPath: विधि ठीक से काम नहीं कर रही है?

उदाहरण के लिए मैं tableview

में 3 पंक्तियों अगर मैं 1 पंक्ति का चयन करें (indexPath.row == 0) कुछ भी नहीं

होगा अगर फिर से 2 पंक्ति का चयन करेंगे (indexPath.row == 1) अब यह कंसोल इंडेक्स में प्रवेश कर रहा है Path.row == 0 जो पिछले मान है।

यदि फिर से 1 पंक्ति का चयन करें तो इसके पिछले मूल्य indexPath.row = 1 को लॉगिंग करें।

ऐसा क्यों चल रहा है।

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

     CustomerInfoViewController *customer = [[EquipmentViewController alloc]initWithNibName:@"CustomerInfoViewController" bundle:nil]; 

    EquipmentViewController *equpment = [[EquipmentViewController alloc]initWithNibName:@"EquipmentViewController" bundle:nil]; 

    ContactsViewController *contacts = [[ContactsViewController alloc]initWithNibName:@"ContactsViewController" bundle:nil]; 

    if(indexPath.row == 0) 
    { 

     NSLog(@"one %d",indexPath.row); 
     [detailsView addSubview:customer.view]; 
    } 

    if(indexPath.row == 1) 
    { 

     NSLog(@"two %d",indexPath.row); 
     [detailsView addSubview:equpment.view]; 
    } 

    if(indexPath.row == 2) 
    { 

     NSLog(@"three%d",indexPath.row); 
     [detailsView addSubview:contacts.view]; 
    } 
} 

कृपया कोई मेरी मदद करें।

अग्रिम धन्यवाद।

+1

कुछ वास्तविक कोड दिखाएं? – Vladimir

+0

तर्कसंगत रूप से सही लगता है। हो सकता है कि शुरुआतीकरण को if-statement में खींचें। क्या इसके पास वर्गों के साथ कुछ करने के लिए हो सकता है? हो सकता है कि 'एनएसएलओजी (@ "% d% d", indexPath.row, indexPath.section);' यह देखने के लिए कि फ़ंक्शन को कॉल नहीं किया गया है या आपका कोड बस गलत है। समस्या को बेहतर ढंग से समझने के लिए आपको कुछ विकल्प साफ़ करना होगा। – DAS

उत्तर

19

आप didDeselectRowAtIndexPath विधि, इरादा

+3

omfg मैंने अपनी समस्या के रूप में इस तरह से बहुत लंबा रास्ता बिताया! lol – canhazbits

+0

'didSelectRowAtIndexPath: 'डिफ़ॉल्ट रूप से UITableViewController क्लास में जोड़ा जाता था, लेकिन अब इसे' readyForSegue: 'द्वारा प्रतिस्थापित किया गया है, कष्टप्रद। इसका मतलब यह भी है कि बहुत से लोग विधि नाम में छोटे 'डी' को नहीं देखते हैं और गलत विधि का उपयोग करते हैं। – runmad

1

गलत विधि कार्यान्वयन के रूप में नहीं didSelectRowAtIndexPath को क्रियान्वित किया है के रूप में व्लादिमीर कहा। didSelectRowAtIndexPath

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