如何在UITableView中检测Cell选择 - Swift

时间:2015-02-10 11:13:31

标签: ios swift uitableview ios8 uikit

只是想知道如何在我的app中实现didSelectRowAtIndexPath或类似内容。 我有一个带有几个动态单元格的填充表视图,基本上我想在选择某个单元格后更改视图。

我能够在Obj-C中找到它,但谷歌上没有任何东西可以帮助我使用Swift!任何帮助都会受到赞赏,因为我还在学习

3 个答案:

答案 0 :(得分:29)

您可以在Swift中使用didSelectRowAtIndexPath

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    NSLog("You selected cell number: \(indexPath.row)!")
    self.performSegueWithIdentifier("yourIdentifier", sender: self)
}

对于Swift 3,它是

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    NSLog("You selected cell number: \(indexPath.row)!")
    self.performSegueWithIdentifier("yourIdentifier", sender: self)
}

确保您实施UITableViewDelegate

答案 1 :(得分:3)

这是我在实现cellForRow,numberOfRowsInSection&之后设法从UITableView单元格转换到其他视图控制器的方法。 numberOfSectionsInTable。

//to grab a row, update your did select row at index path method to:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    NSLog("You selected cell number: \(indexPath.row)!");

    if indexPath.row == 1 {
        //THE SEGUE 
        self.performSegue(withIdentifier: "goToMainUI", sender: self)
    }
}

将输出:You selected cell number: \(indexPath.row)!

请记住将故事板中segue的标识符与函数中的标识符匹配,例如goToMainUI

答案 2 :(得分:0)

使用以下代码以编程方式为collectionView选择索引为'0'的单元格。

self.collectionView.reloadData()
DispatchQueue.main.async {
  self.collectionView(self.collectionView, didSelectItemAt: IndexPath(item: 0, section: 0))
}