【发布时间】:2015-04-10 09:36:31
【问题描述】:
如何在我的 Swift 应用中实现 didSelectRowAtIndexPath: 或类似的东西?
我有一个包含多个动态单元格的填充表格视图,我想在选择某个单元格后更改视图。
我可以在 Objective-C 中理解它,但在 Swift 上没有任何东西可以帮助我!
【问题讨论】:
标签: ios swift uitableview uikit
如何在我的 Swift 应用中实现 didSelectRowAtIndexPath: 或类似的东西?
我有一个包含多个动态单元格的填充表格视图,我想在选择某个单元格后更改视图。
我可以在 Objective-C 中理解它,但在 Swift 上没有任何东西可以帮助我!
【问题讨论】:
标签: ios swift uitableview uikit
你可以在 Swift 中使用didSelectRowAtIndexPath:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
NSLog("You selected cell number: \(indexPath.row)!")
self.performSegueWithIdentifier("yourIdentifier", sender: self)
}
只要确保你实现了UITableViewDelegate。
【讨论】:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { NSLog("You selected cell number: \(indexPath.row)!") if indexPath.row == 0 { self.performSegueWithIdentifier("MoveToSignIn", sender: self) }
这就是我在实现 cellForRow、numberOfRowsInSection 和 numberOfSectionsInTable 之后设法从 UITableView 单元格转移到其他视图控制器的方式。
//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。
【讨论】:
使用以下代码以编程方式为 collectionView 选择索引为“0”的单元格。
self.collectionView.reloadData()
DispatchQueue.main.async {
self.collectionView(self.collectionView, didSelectItemAt: IndexPath(item: 0, section: 0))
}
【讨论】: