Swift - UITableView didSelectRowAtIndexPath & didDeselectRowAtIndexPath Add & Remove indexPath IDs

后端 未结 2 1752
春和景丽
春和景丽 2020-12-29 13:57

This is the code:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let selectedItem = items.objectAtIndex(indexPa         


        
相关标签:
2条回答
  • 2020-12-29 14:28

    You could do this pretty simply by adding a Dictionary property to your table view controller:

    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)
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-29 14:50

    For Swift 3.0, use

    override  func tableView(_ tableView: UITableView, didSelectRowAt
     indexPath: IndexPath){
         //your code...  
    }
    
    0 讨论(0)
提交回复
热议问题