從plist文件加載tableview。這工作沒有問題。我只是想「勾選」標籤行。目前與我的代碼,它不會按需要工作。目前,它洛斯這樣的:在tableview中選擇多行,並勾選選中的行
- 自來水ROW1(它會打勾行1 =好)
- 自來水ROW1再次(沒有任何反應=糟糕,我希望這裏的排鬚取消選中。) 雖然再次攻在第1行,它unt然後。在secont之後點擊它。
- 當我在的tableview的初始載分接開關ROW0它從來沒有蜱我行
我的代碼:
class portals: UITableViewController {
var lastSelectedIndexPath = NSIndexPath(forRow: -1, inSection: 0)
...
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! UITableViewCell
// Configure the cell...
cell.textLabel!.text = portals[indexPath.row]
return cell
}
// Check which portal is selected
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var whichPortalIsSelected: String = ""
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow();
// Tick the selected row
if indexPath!.row != lastSelectedIndexPath?.row {
let newCell = tableView.cellForRowAtIndexPath(indexPath!)
newCell?.accessoryType = .Checkmark
lastSelectedIndexPath = indexPath
whichPortalIsSelected = newCell!.textLabel!.text!
println("You selected cell #\(lastSelectedIndexPath.row)!") //PPP
println("You selected portal #\(whichPortalIsSelected)!") //PPP
// Un-Tick unselected row
} else {
let newCell = tableView.cellForRowAtIndexPath(indexPath!)
newCell?.accessoryType = .None
whichPortalIsSelected = newCell!.textLabel!.text!
println("You unselected cell #\(indexPath!.row)!") //PPP
println("You unselected portal #\(whichPortalIsSelected)!") //PPP
}
}
}
這似乎並不奏效。 'tableView:didSelectRowAtIndexPath:'只有在選中該行時纔會調用,而不是在取消選擇時調用,因此'cell.selected'將始終爲真! – entropid