2015-02-10 123 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