如何从选定的tableview单元格中获取标题部分标题?

时间:2017-01-10 05:22:54

标签: ios swift uitableview

我的桌面视图有几个部分。我想要的是当我从部分我想要该部分的标题标题中选择一个特定的tableview单元格时。我看了几个问题,但没有找到任何有用的东西。 提前谢谢。

4 个答案:

答案 0 :(得分:6)

您可以在tableviewcell点击方法

上使用以下代码获取标题
UITableViewHeaderFooterView* header =[self.tableView headerViewForSection:indexPath.section];
NSLog(@"Header text = %@", header.textLabel.text);

在Swift中

let sectionHeaderView = table.headerViewForSection(indexPath.section)
let sectionTitle = sectionHeaderView?.textLabel?.text

答案 1 :(得分:1)

我在一个单元案例中遇到了这个问题。我的用例:没有自定义标头,并使用UITableViewDataSource方法tableView(_:titleForHeaderInSection:)为每个节返回一个字符串。 headerView(forSection:)返回nil,但是numberOfSections返回正确的段数,rect(forSection:)返回正确的帧,并且最令人困惑的是,可视调试器将这些段显示为类型{{1 }}。

我终于可以通过调用UITableViewHeaderFooterView方法dataSource来检索本节的标题:

tableView(_:titleForHeaderInSection:)

看似奇怪的行为,当仅将字符串传递给tableView.dataSource?(tableView, titleForHeaderInSection: 0) 方法时,UIKit正在使用UITableViewHeaderFooterView创建标头。有人会认为您可以使用tableView(_:titleForHeaderInSection:)来检索它们。

答案 2 :(得分:0)

如果您正在使用" titleForHeaderInSection"请尝试按下以获取标题表委托:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        let title = self.tableView(tableView, titleForHeaderInSection: indexPath.row)

    }

答案 3 :(得分:0)

快捷键4:使用单元格按钮单击

    let buttonPosition:CGPoint = sender.convert(.zero, to:self.mytable)
    let indexPath12 = self.mytable.indexPathForRow(at: buttonPosition)

    let intSection : Int = (indexPath12?.section)!
    let intRow : Int = (indexPath12?.row)!

    let myHeaderView = tableView(self.mytable, viewForHeaderInSection: indexPath?.section)
    let labels = myHeaderView?.subviews.compactMap { $0 as? UILabel }

    var sectioTitle = ""
    for label in labels! {
        // you will get your title
        sectioTitle = label.text!
    }

Swift 4:使用uitablview didselect方法

    let myHeaderView = tableView(self.mytable, viewForHeaderInSection: indexPath?.section)
    let labels = myHeaderView?.subviews.compactMap { $0 as? UILabel }

    var sectioTitle = ""
    for label in labels! {
        // you will get your title
        sectioTitle = label.text!
    }