2010-06-15 8 views
44

मेरे पास UITableViewController है जहां उपयोगकर्ता आइटम को संपादित करने में सक्षम होना चाहिए।संपादन करते समय, 'UITableView` को कॉल नहीं किया जाता है SelectRowAtIndexPath ??

self.navigationItem.rightBarButtonItem = self.editButtonItem; 

हर किसी के लिए जो पता नहीं है जहां self.editButtonItem से आता है, यह एसडीके द्वारा पूर्वनिर्धारित है: आदेश संपादन सक्षम करने के लिए मैं इस का उपयोग करें।

तो, अब जब मैं किसी भी आइटम पर दबाते हैं, तो इस विधि कहा जाता है:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

लेकिन जैसे ही मैं संपादित करें बटन हिट और संपादित करते समय सक्रिय है, इस विधि के नाम से जाना लग रहा था नहीं है।

कोई विचार जो मुझे याद आ रहा है?

इस कोड है कि संपादन से संबंधित है के बाकी है:

// Override to support conditional editing of the table view. 
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return NO if you do not want the specified item to be editable. 
    return YES; 
} 

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewCellEditingStyleNone; 
} 


- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return NO; 
} 

मदद के लिए धन्यवाद।

एमसीबी

उत्तर

114

आप सही करने के लिए UITableView की allowsSelectionDuringEditing गुण सेट होगा।

संदर्भ: UITableView - allowsSelectionDuringEditing

+0

ठीक वही है जो मैं खो रहा था, धन्यवाद – elementsense

+2

जादू उत्तर .. _superTableView.allowsSelectionDuringEditing = true; और _superTableView.allows चयन = सत्य; धन्यवाद!! – Fattie

+4

चार साल बाद, और आप अभी भी जीवन बचा रहे हैं! – thomax

0

आप self.editing = YES सेट करें जब संपादित करें बटन टैप किया जाता है?

संपादन मोड में इस विधि कहा जाता है जब, didSelectRow के बजाय जब आप एक पंक्ति नल: जैसे ही मैंने संपादित करें बटन हिट और संपादित करते समय सक्रिय है, इस पद्धति नहीं है

tableView:commitEditingStyle:forRowAtIndexPath:. 
+0

मुझे यकीन नहीं है कि आपका दावा सही है या नहीं, जब आप वास्तव में सेल को हटाते या संपादित करते हैं तो कमेटी कैलिल्ड हो जाती है ...मेरा जवाब पढ़ें, ऐसा करने का तरीका है सिलेक्ट्रो कॉल वापस करें जब – Daniel

+0

संपादित करें हाय, आप निश्चित रूप से बिल्कुल सही हैं! मैं ध्यान नहीं दे रहा था:/क्षमा करें। – RickiG

-2

लेकिन लग रहा था लग रहा था।

कोई विचार जो मुझे याद आ रहा है?

हां। आप tableView:didSelectRowAtIndexPath: की उम्मीद कर रहे हैं जब आपके नेविगेशन बार में एक बटन टैप किया जाता है। ऐसा कभी नहीं होगा। उस विधि को केवल तभी बुलाया जाता है जब एक पंक्ति का चयन किया जाता है।

जब संपादन बटन टैप किया जाता है, तो आप अपनी तालिका को संपादन मोड में रखना चाहेंगे। आपके विचार नियंत्रक में:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    [super setEditing:editing animated:animated]; // must be called first according to Apple docs 

    [self.tableView setEditing:editing animated:animated]; 
} 

तो फिर तुम एक tableView:commitEditingStyle:forRowAtIndexPath: विधि जोड़कर घटनाओं संपादन संभाल।

+1

वह पूछ रहा है कि क्यों नहीं किया गया है, जब वह संपादन कर रहा है उसे चयन नहीं किया जाता है, तो वह उम्मीद नहीं कर रहा है जब वह – Daniel

+0

@Daniel संपादित करता है यदि आप बारीकी से देखते हैं, तो आप देखेंगे कि मैंने प्रश्न का उत्तर दिया था। –

0

मैंने इस समस्या को अन्य तरीकों से हल किया। मेरा संपादन बटन मेरी खुद की नेविगेशन बार पर था और यही वजह है कि इसे नहीं कहा गया था। नेविगेशन कंट्रोलर के अंदर वीसी को एम्बेड करने के बाद, और नेविगेशन आइटम के अंदर नया संपादन बटन डाला, संपादन बटन को कॉल करने के लिए शुरू किया गया।

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

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