DidSelectRowAtIndexPath SWIFT

时间:2015-12-23 17:25:22

标签: ios swift uitableview uisearchdisplaycontroller didselectrowatindexpath

我用它创建了一个表和一个搜索栏控制器。我使用了一个结构来创建表内容。我只想将数据存储在变量中的选定单元格中。我是一个新的iOS开发者。请帮助:) TIA

//my struct

import Foundation    
struct areas 
    {
        let name : String
    }

// table contents

 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

      var place :areas

        if tableView == self.searchDisplayController!.searchResultsTableView{

            place = filteredareas[indexPath.row]
        }

        else{

            place = places[indexPath.row]
        }

        cell.textLabel!.text = place.name
        cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator

        return cell
    }

如何使用didSelectRowAtIndexPath来了解单击的单元格的内容?

2 个答案:

答案 0 :(得分:1)

单击tableviewcell时,会调用tableviewdelegate方法didSelectRowAtIndexPath,该方法为您提供indexPath,以便您可以按如下方式访问数组中的行:

     var place: areas


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    place = filteredareas[indexPath.row]
}

因此每次单击tableview单元格时,都会调用上面的委托方法&适当的变量将根据indexPath.row

存储到位

答案 1 :(得分:-1)

试试;

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        var place: areas
        place = filteredareas[indexPath.row]
        // do with place whatever you want
}