2013-10-21 8 views
10

मेरे पास चयन योग्य पंक्तियों के साथ एक तालिका दृश्य है। जब मैं तालिका दृश्य कुछ नई पंक्तियाँ जोड़ा जा सकता है (या निकाला गया) और तालिका दृश्य की कोशिकाओं में बदल सकता है कुछ लेबल से लोड करें। [tableView reloadData] पर कॉल करके मैं यही हासिल करना चाहता हूं। चयन सहित -अपनी चयन स्थिति को साफ़ किए बिना तालिका दृश्य डेटा को दोबारा लोड करें

दुर्भाग्य है कि विधि भी तालिका दृश्य के पूरे राज्य को साफ करता है। लेकिन मुझे चयन रखने की जरूरत है।

तो चुने गए पंक्तियों को अभी भी रखते हुए मैं तालिका दृश्य में सभी डेटा को फिर से लोड कैसे कर सकता हूं? डेटा को फिर से लोड करने से पहले

rowToSelect = [yourTableView indexPathForSelectedRow]; 

:

उत्तर

16

तुम साथ चयनित पंक्ति का सूचकांक पथ स्टोर कर सकते हैं। और पुनः लोड करने के बाद:

[yourTableView selectRowAtIndexPath:rowToSelect animated:YES scrollPosition:UITableViewScrollPositionNone]; 
+1

सुंदर सीधा। धन्यवाद! – Mischa

9

जेरोवालिस समाधान एकल चयन तालिका दृश्यों के लिए काम करता है। अपने विचार के आधार पर मैंने इसे कई चयनों के साथ काम किया:

NSArray *selectedIndexPaths = [self.tableView indexPathsForSelectedRows]; 
[tableView reloadData]; 
for (int i = 0; i < [selectedIndexPaths count]; i++) { 
    [tableView selectRowAtIndexPath:selectedIndexPaths[i] animated:NO scrollPosition:UITableViewScrollPositionNone]; 
} 
+0

पूरी तरह से काम करता है! धन्यवाद! :) –

+0

लेकिन यह प्रत्येक पूर्व चयनित कोशिकाओं के लिए फिर से DidselectRowAtIndexPath को कॉल करेगा। और जब उपयोगकर्ता एक सेल का चयन करता है तब मैंने उन क्रियाओं को ट्रिगर कर दिया है जिन्हें मैंने कोड किया है। – omarojo

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