切换单元格,而不是在tableView方法中传递正确的bool值

时间:2015-02-25 16:15:12

标签: ios uitableview swift

在单元格类文件中,我有:

class adminImagesCell: UITableViewCell {

@IBOutlet weak var banSwitch: UISwitch!

}

插座连接到单元格中的开关视图。 在控制删除过程的表视图方法中我有:

 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    let cell = tableView.dequeueReusableCellWithIdentifier("adminImagesCell") as? adminImagesCell

    println(cell!.banSwitch.on)

   tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
    }
}

当我从这段代码中触发删除时,即使我设置了开关,单元格!.banSwitch.on也总是打印FALSE。你知道为什么吗?

1 个答案:

答案 0 :(得分:1)

问题是你出了一个新的单元格,没有得到传入的indexPath的引用。你应该使用cellForRowAtIndexPath,

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    let cell = tableView.cellForRowAtIndexPath(indexPath) as? adminImagesCell

    println(cell!.banSwitch.on)

   tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
    }
}