无法获取Clicked Cell的indexPath(其中Cell是CustomTableViewCell`)

时间:2015-12-07 03:28:38

标签: swift uitableview

我有一个TableView和单独的TableViewCell(带.xib)。我正在尝试选择单击的单元格。如果我理解正确,我认为如果我让indexPath.row能够从对象获取/读取数据,那对我的情况来说是好的。

我尝试了什么...

@IBOutlet var tableView1: UITableView!

...

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

    // First tried this, but no luck. Nothing gets printed in console.
        print(indexPath.row)

    // Also, nothing in console
       print(results?[indexPath.row])

   // Then tried this, but no luck either.. nothing in console
       let indexPath = tableView1.indexPathForSelectedRow!
        let currentCell = tableView1.cellForRowAtIndexPath(indexPath) as! MyCustomTableViewCell
        print(currentCell)
}

这是我在cellForRowAtIndexPath ..

中使用的内容
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    self.tableView.registerNib(UINib(nibName: "MyCustomTableViewCell", bundle: nil),
        forCellReuseIdentifier: "MyCustomTableViewCell")

    let cell : DiscoverTableViewCell = tableView.dequeueReusableCellWithIdentifier("MyCustomTableViewCell") as! DiscoverTableViewCell

    cell.photo = self.results?[indexPath.row]

    return cell

两个试验都没有在控制台中返回任何内容。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的代码中的

tableView1.allowsSelection = false会阻止单元格选择,因此,您的didSelectRowAtIndexPath永远不会被调用。

您必须设置tableView1.allowsSelection = true并在cellForRowAtIndexPath函数中将您的单元格selectionStyle属性设置为UITableViewCellSelectionStyle.None以获得结果。