我的桌面视图有问题,我可以轻拍我的细胞。但是,如果我快速敲击同一个细胞两次。它运行两次“didSelectRowAtIndexPath”。将2个相同的视图添加到导航控制器堆栈
这是功能:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var VC = detaiLSuggestion_VC()
self.navigationController?.pushViewController(VC, animated: true)
var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
if selectedCell.backgroundColor == UIColor.formulaFormColor() {
println("Buy Action")
selectedCell.backgroundColor = UIColor.formulaMediumBlue()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaFormColor()
})
} else {
println("Sell Action")
selectedCell.backgroundColor = UIColor.formulaGreenColor()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaLightGreenColor()
})
}
为什么我能够选择两次相同的细胞?我将如何解决这个问题?
答案 0 :(得分:3)
为什么我能够两次选择同一个细胞?
因为细胞仍在屏幕上被点击。您可能希望使用单元格点击导航以外的其他操作,然后您不希望阻止将来的点击。如果不是这样的话,多选也会复杂得多。
我将如何解决这个问题?
一个简单的布尔标志表示已经点击了某些东西,或者你可能想要在呈现另一个视图控制器时将CollectionView的allowsSelection属性设置为NO