2014-11-04 15 views
6

Đây là mã:Swift - UITableView didSelectRowAtIndexPath & didDeselectRowAtIndexPath Thêm & Di indexPath ID

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let selectedItem = items.objectAtIndex(indexPath.row) as String 
    let itemId = selectedItem.componentsSeparatedByString("$%^") 
    //itemId[1] - Item Id 
} 

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 
    let selectedItem = items.objectAtIndex(indexPath.row) as String 
    let itemId = selectedItem.componentsSeparatedByString("$%^") 
    //itemId[1] - Item Id 
} 

Làm thế nào để thêm Id Item "trong mảng hoặc trong String hay cái gì khác ..."? Khi bạn chọn các hàng 0,1,4,5 ví dụ bạn có các Mã mục khác nhau được thêm vào "trong mảng hoặc trong chuỗi" và sau đó khi tôi muốn bỏ chọn chúng làm thế nào để bỏ chọn Id Item chính xác từ indexPath.row được bỏ chọn và tìm nó "trong mảng hoặc trong chuỗi hoặc cái gì khác ..." và xóa nó? Xin lỗi vì tôi bị phá vỡ tiếng anh nếu bạn có một câu hỏi hỏi trong ý kiến ​​và tôi sẽ giải thích nếu tôi có thể

+0

Tôi cần tìm kiếm trong mảng hoặc chuỗi cho ID này bị bỏ chọn và tôi muốn xóa nó. –

Trả lời

21

Bạn có thể làm điều này khá đơn giản bằng cách thêm một tài sản Dictionary để xem điều khiển bảng của bạn:

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

Cảm ơn bạn rất nhiều !!! :) –

+0

bạn có lỗi :) var selectedItems = Dictionary () –

+0

Hoàn toàn đúng - mặc dù tôi thích '[String: Bool]'. –

2

Đối Swift 3.0, sử dụng

override func tableView(_ tableView: UITableView, didSelectRowAt 
indexPath: IndexPath){ 
    //your code... 
} 
Các vấn đề liên quan