tableView cell.detailTextLabel.text返回nil

时间:2018-02-08 15:43:18

标签: ios swift uitableview detailtextlabel

我尝试在tableView中将字符串设置为detailTextLabel,但它返回nil。我读过其他帖子,其中我不是第一篇,但我无法理解我的情况出了什么问题。我正在使用Swift 4。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell: UITableViewCell = {
            guard let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") else {
                return UITableViewCell(style: UITableViewCellStyle.value1, reuseIdentifier: "Cell")
            }
            return cell
        }()

        let filtersRow: Bool = (currentSearchType == .all && indexPath.section == 0)

        var titleText: String = ""

        if filtersRow == true {
            titleText = "Filters"
            var detailText: String = ""
            if currentFilters.count == 0 {
                detailText = "None"
            }
            else if currentFilters.count == 1 {
                detailText = currentFilters.first!
            }
            else {
                detailText = "\(currentFilters.count)"
            }
            cell.textLabel?.text = titleText /// -> shows 'Filters' as expected
            cell.detailTextLabel?.text = detailText /// -> shows nothing
            print("Detail text: \(cell.detailTextLabel?.text)") --> returns nil
            print("cell.textLabel? \(String(describing: cell.textLabel))") /// --> Optional(<UITAbleViewLabel...>)
            print("cell.detailTextLabel? \(String(describing: cell.detailTextLabel))") /// ---> nil
        cell.accessoryType = .disclosureIndicator

            cell.accessoryType = .disclosureIndicator
            return cell
        }
        ...

我获取单元格的方式肯定有问题,但我在另一个viewController中执行相同的操作并且进展顺利... 有人会有想法吗?

1 个答案:

答案 0 :(得分:0)

在没有创建detailTextLabel时会发生这种情况。通常是您的代码或情节提要中的错误。因此,请检查有问题的单元的创建。

也请阅读此Stackoverflow Q&A about this topic