I'm facing a curious UITableView
behaviour and i don't know where this is coming from.
I'm building a very simple single view IOS8 Swift application with a first ViewController
with a UITableView
inside it and one custom Image cell. When i tap on a cell it Segue to my SecondViewController
.
My UITableView delegate and datasource is connected to the first ViewController. Everything is working except when i tap a cell sometimes i have to tap it twice to trigger the Segue.
Here is my didSelectRowAtIndexPath
function:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println("You clicked on \(indexPath.row) row")
self.performSegueWithIdentifier("homeToDetail", sender:self)
}
My print is always returning the correct indexPath. Is it a view hierarchy problem or something else ?
Thank you JD
A view that presents data using rows in a single column. iOS 2.0+ iPadOS 2.0+ Mac Catalyst 13.1+ tvOS 9.0+
Swift version: 5.6. Index paths describe an item's position inside a table view or collection view, storing both its section and its position inside that section.
func tableView(UITableView, willDisplay: UITableViewCell, forRowAt: IndexPath) Tells the delegate the table view is about to draw a cell for a particular row. func tableView(UITableView, indentationLevelForRowAt: IndexPath) -> Int. Asks the delegate to return the level of indentation for a row in a given section.
Try this.
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
dispatch_async(dispatch_get_main_queue(), {
self.performSegueWithIdentifier("homeToDetail", sender:self)
})
}
This is a bug in iOS 8, I think. UITableViewCell selection Storyboard segue is slow - double tapping works though
You have to call [tableView deselectRowAtIndexPath:indexPath animated:YES];
to fix this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With