2008-12-11 13 views
13

अवरुद्ध करना मैं उत्सुक हूं यदि UITableView पर 'संपादन' मोड के डिफ़ॉल्ट तरीकों को रोकना संभव है। आमतौर पर आपको एक मुफ्त 'हटाएं' बटन मिलता है यदि आप एक UITableViewCell को स्वाइप करते हैं जिसमें इसके साथ जुड़े प्रतिनिधि तरीके हैं। मैं डिलीवरी को किसी अन्य, मनमाने ढंग से चयनकर्ता में बदलना चाहता हूं। सेल को हटाने के बजाय, मैं सिर्फ एक हैलो वर्ल्ड अलर्ट वार्तालाप चलाने की इच्छा रखूंगा। क्या इस हद तक कुछ संभव है?UITableView, संपादन मोड

उत्तर

3

UITableViewCell पर editAction नामक एक संपत्ति है जिसे आपको व्यक्तिगत कोशिकाओं पर सम्मिलन या हटाने के लिए उपयोग की जाने वाली क्रिया को बदलने के लिए दस्तावेज किया गया है (यह सेल की target संपत्ति का भी उपयोग करता है)। मैंने इसका परीक्षण नहीं किया है, लेकिन ऐसा लगता है कि यह वही कर सकता है जो आप चाहते हैं।

+3

यह सुविधा आईओएस 3.0 के रूप में बहिष्कृत कर दी गई है। –

0

मैं UITableViewCell के उप-वर्ग को कार्यान्वित करता हूं और वहां स्पर्श स्पर्श ईवेंट को संभालता हूं। आपको शायद सभी एनीमेशन सामान स्वयं करना होगा, लेकिन मुझे लगता है कि यह शायद सबसे आसान समाधान है। डिलीट बटन बदलने के लिए "समर्थित" विधि नहीं है, मुझे नहीं लगता कि

21

संपादन को आपके UITableView के प्रतिनिधि ऑब्जेक्ट पर एक विधि के रूप में कार्यान्वित किया गया है।

[tableView setEditing: YES animated: YES]; 

फिर, सुनिश्चित करें कि आपके प्रतिनिधि वस्तु इस लागू करता है::

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
      UIAlertView *alert = [[UIAlertView alloc] 
       initWithTitle: @"Delete" 
       message: @"Do you really want to delete “George W. Bush”?" 
       delegate: self 
       cancelButtonTitle: @"Cancel" 
       otherButtonTitles: @"Of course!", nil]; 
    } 
} 

... या एक अधिक मानक कार्रवाई हो सकती है:

अपनी मेज नियंत्रक में, जो कुछ नियंत्रण संपादन इस कॉल को सक्रिय करता है
[itemList removeObjectAtIndex:indexPath.row]; 
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; 
+1

समस्या तब होती है जब उपयोगकर्ता "रद्द करें" पर क्लिक करता है। एकमात्र चीज जो मैंने किया है वह आधा ठीक दिखता है, हटाएं बटन से छुटकारा पाने के लिए 'reloadRowsAtIndexPaths' है। संदेश के लिए –

+1

+1: @ "क्या आप वास्तव में जॉर्ज डब्ल्यू बुश" को मिटाना चाहते हैं? " ;) – Devarshi

6

@JFMartin और मार्को - मानक को बदलने के लिए 'हटाएं' बटन निम्नलिखित UITableView प्रतिनिधि विधि का उपयोग

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath 
संबंधित मुद्दे