2015-02-10 106 views
14

只是想知道如何去执行didSelectRowAtIndexPath或类似的东西到我的应用程序。 我有一个填充表视图与几个动态单元格,基本上我想改变视图,一旦选定某个单元格。如何检测UITableView中的单元格选择 - 斯威夫特

我可以在Obj-C中找到我的头,但是在谷歌上没有任何东西可以帮助我与Swift!任何帮助将不胜感激,因为我仍在学习

回答

27

您可以在Swift中使用didSelectRowAtIndexPath

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

对于斯威夫特3这是

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

只要确保你实现UITableViewDelegate

+0

谢谢这么多!谷歌根本没有,我花了很多年寻找,并一直试图为自己...这虽然给我另一个问题。我如何确保每个单独的细胞执行不同的赛格? – Alex 2015-02-10 13:20:52

+0

检查indexPath.row。它给你的行数。然后你可以使用if-else。 – Christian 2015-02-10 13:21:56

+0

太棒了! Thankyou的帮助下,我终于开始明白Swift现在好一点了:) – Alex 2015-02-10 13:24:05

2

这是我实现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)!

记住你赛格瑞的故事板的标识符匹配的标识符的功能,e.g goToMainUI