如何从详细信息视图(Back Segue)返回后禁用所选表格单元格突出显示

时间:2015-02-19 08:36:50

标签: uitableview swift

我的桌面视图单元格有问题。使用带有嵌入式导航控制器的segue从详细视图返回到主表视图后,我无法禁用表格单元格选择的突出显示。表单元格仍处于选中状态。当我单击其中一个以显示详细信息时,我不希望禁用表格单元格选择。我只想在从详细信息视图返回后禁用它们。

6 个答案:

答案 0 :(得分:39)

我现在明白了。我这样解决了。这是一个简单的理论。

  

我们在选择行

时取消选择它
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
}

答案 1 :(得分:4)

您还可以禁用单元格选择突出显示:

import Foundation

class CustomTableViewCell: UITableViewCell
{
  required init(coder aDecoder: NSCoder)
  {
    fatalError("init(coder:) has not been implemented")
  }

  override init(style: UITableViewCellStyle, reuseIdentifier: String?)
  {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    self.selectionStyle = UITableViewCellSelectionStyle.None
  } 
}

答案 2 :(得分:3)

Swift3解决方案:

它将允许选择,这是swift 3的修复。

cell.selectionStyle = UITableViewCellSelectionStyle.none

答案 3 :(得分:3)

我喜欢这样做的方式,如果您启用了单一选择,则使用 viewDidAppear 方法。这样,用户可以在返回tableView时看到取消选择动画。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)
    if let selectedRow = tableView.indexPathForSelectedRow {
        tableView.deselectRow(at: selectedRow, animated: true)
    }
}

答案 4 :(得分:1)

self.selectionStyle = UITableViewCellSelectionStyle.None

在覆盖func awakeFromNib()中也应该足够了:)

采用上述代码时出现致命错误。

答案 5 :(得分:0)

Swift 3

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
}