只是想知道如何在我的app中实现didSelectRowAtIndexPath或类似内容。 我有一个带有几个动态单元格的填充表视图,基本上我想在选择某个单元格后更改视图。
我能够在Obj-C中找到它,但谷歌上没有任何东西可以帮助我使用Swift!任何帮助都会受到赞赏,因为我还在学习
答案 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))
}