选择一行后,在UITableViewHeaderFooterView中快速更改文本

时间:2017-11-02 13:55:29

标签: swift xcode

我正在尝试将我的标题标签更改为nameLabelText(当我点击一行时我设置的字符串类型的var)当我调用didselectrow时,现在当我选择一行时,调用确定的集合并打印出来我希望它的字符串,但它只是不上传标签?

 var nameLabelText: String? {
    didSet{
        print("did set nameLabelText",nameLabelText as Any)
        nameLabel.text = nameLabelText

      reloadInputViews()
    }
}

 lazy var nameLabel: UILabel = {
    let label = UILabel()
    label.text = "Search Refinements"
    label.translatesAutoresizingMaskIntoConstraints = false
    label.font = UIFont.boldSystemFont(ofSize: 14)
    return label
}()

1 个答案:

答案 0 :(得分:0)

问题是,如果您想要更改标题标签的文字,请按

创建新的ConntectionStatusHeader

let csh = ConntectionStatusHeader()

而不是获取当前ConntectionStatusHeader

要解决此问题,请在点击单元格时获取ConntectionStatusHeader您想要更改标签并更改其标签的文字。请使用didSelectRowAt方法尝试以下代码。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  if indexPath.row == 0 {
    print("Online Users Only Selected")
    let csh = tableView.headerView(forSection: indexPath.section) as! ConntectionStatusHeader;
    csh.nameLabelText = "Search Refinements - Online Users Only "
  } else {
    // Do what you want
  }
}