如何知道是否选择了UITableView的单元格?

时间:2014-10-11 19:06:13

标签: ios xcode uitableview swift

我正在使用XCode在Swift中编写应用程序。它包括UITableView。只有一个问题 - 在Swift中,我如何判断用户选择了哪个单元格?

澄清:

  1. 用户选择标签为" foo"
  2. 的单元格
  3. 代码应返回" foo"或用户选择的任何内容

2 个答案:

答案 0 :(得分:4)

假设您有相关单元格的indexPath - 例如,来自任何UITableViewDelegate或UITableViewDataSource方法,

BOOL selected = [tableView.indexPathsForSelectedRows containsObject:indexPath];

答案 1 :(得分:3)

您可以通过在视图控制器中添加以下功能来判断用户选择了哪个单元格。

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
...

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    println("You selected cell #\(indexPath.row)!")
}

...

}

所以现在取决于你是否有一个数组来显示每个单元格的文本名称。如果是,您可以使用此indexPath.row来检索所选行用户的文本。

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    var tableView : UITableView!
    var data:String[] = ["Cell 1","Cell 2","Cell 3","Cell 4"]


func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
        let cell : UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell
        cell.text = self.data[indexPath.row]
        return cell
    }

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
         println("SELECTED INDEX /(indexPath.row)")
         println("Selected Cell Text /(data[indexPath.row])")
}