2014-11-04 5 views
6

इस कोड है? जब आप 0,1,4,5 पंक्तियों का चयन करते हैं, उदाहरण के लिए आपके पास "ऐरे या स्ट्रिंग में" अलग-अलग आइटम आईडी जोड़े गए हैं और फिर जब मैं उन्हें अचयनित करना चाहता हूं कि indexPath.row से सटीक आइटम आईडी को अचयनित कैसे करें जिसे अचयनित किया गया है और ढूंढें यह "ऐरे में या स्ट्रिंग में या कुछ और ..." और इसे हटा दिया? के लिए खेद मेरी अंग्रेजी टूट आप एक प्रश्न पूछना चाहते हैं टिप्पणी में पूछने के लिए और मैं अगर मैंस्विफ्ट UITableView didSelectRowAtIndexPath और didDeselectRowAtIndexPath जोड़ें और निकालें indexPath आईडी

+0

मुझे इस आईडी के लिए सरणी या स्ट्रिंग में खोज करने की आवश्यकता है जिसे अचयनित किया गया है और मैं इसे हटाना चाहता हूं। –

उत्तर

21

आप इस सुंदर बस अपने तालिका दृश्य नियंत्रक करने के लिए एक Dictionary संपत्ति जोड़कर कर सकता है कर सकते हैं समझा जाएगा यदि: के लिए

class ViewController : UITableViewController { 
    var selectedItems: [String: Bool] = [:] 

    // ... 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     let selectedItem = items.objectAtIndex(indexPath.row) as String 
     let itemId = selectedItem.componentsSeparatedByString("$%^") 
     // add to self.selectedItems 
     selectedItems[itemId[1]] = true 
    } 

    func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 
     let selectedItem = items.objectAtIndex(indexPath.row) as String 
     let itemId = selectedItem.componentsSeparatedByString("$%^") 
     // remove from self.selectedItems 
     selectedItems[itemId[1]] = nil 
    } 

    // can access the items as self.selectedItems.keys 
    func doSomething() { 
     for item in selectedItems.keys { 
      println(item) 
     } 
    } 
} 
+1

बहुत बहुत धन्यवाद !!! :) –

+0

आपको कोई गलती है :) var चयनितItems = शब्दकोश <स्ट्रिंग, बूल>() –

+0

पूरी तरह से सही - हालांकि मैं '[स्ट्रिंग: बूल] 'पसंद करता हूं। –

2

स्विफ्ट 3.0,

override func tableView(_ tableView: UITableView, didSelectRowAt 
indexPath: IndexPath){ 
    //your code... 
} 
संबंधित मुद्दे