How to detect tableView cell touched or clicked in swift
Solution 1:
If you want the value from cell then you don't have to recreate cell in the didSelectRowAtIndexPath
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println(tasks[indexPath.row])
}
Task would be as follows :
let tasks=["Short walk",
"Audiometry",
"Finger tapping",
"Reaction time",
"Spatial span memory"
]
also you have to check the cellForRowAtIndexPath
you have to set identifier.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath) as UITableViewCell
var (testName) = tasks[indexPath.row]
cell.textLabel?.text=testName
return cell
}
Hope it helps.
Solution 2:
In Swift 3.0
You can find the event for the touch/click of the cell of tableview through it delegate method. As well, can find the section and row value of the cell like this.
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("section: \(indexPath.section)")
print("row: \(indexPath.row)")
}
Solution 3:
A of couple things that need to happen...
The view controller needs to extend the type
UITableViewDelegate
The view controller needs to include the
didSelectRowAt
function.The table view must have the view controller assigned as its delegate.
Below is one place where assigning the delegate could take place (within the view controller).
override func loadView() {
tableView.dataSource = self
tableView.delegate = self
view = tableView
}
And a simple implementation of the didSelectRowAt
function.
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("row: \(indexPath.row)")
}
Solution 4:
Problem was solved by myself using tutorial of weheartswift
Solution 5:
This worked good for me:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("section: \(indexPath.section)")
print("row: \(indexPath.row)")
}
The output should be:
section: 0
row: 0