Hmm - interesting to know. Unfortunately, if I do that, then I get NO indication of selection when I click on ANY row. Perhaps I need to make some other changes to account for the change in how I get the cell?
—fish (Adam Stoller) > On Sep 12, 2016, at 18:08, Ole Begemann <o...@oleb.net> wrote: > > > The current version of my code seems to satisfy points #1-3, but crashes > > when attempting to deal with #4 - and I’m not sure that what I’ve done > > is “good” or “correct” in terms of satisfying the first three points. > > I haven't looked at all of your code, but one thing that could definitely > cause problems is that you're calling `dequeueReusableCellWithIdentifier` > from `tableView(_:didDeselectRowAtIndexPath:)` and > `tableView(_:didSelectRowAtIndexPath`). Don't do that. > > `dequeueReusableCellWithIdentifier` creates a new cell (or fetches an unused > one from the table view's reuse pool). You should only ever call it from > inside `tableView(_:cellForRowAtIndexPath:)`. > > In `didSelectRow...` and `didDeselectRow...`, you want to ask the table view > for the _existing_ cell at the specified index path. Do this with something > like: > > if let cell = tableView.cellForRowAtIndexPath(indexPath) { > // cell found, do something with it > ... > } else { > // No cell exists at this index path. > // This probably doesn't happen in these callbacks, > // but you never know. > } > > Note that while `tableView.cellForRowAtIndexPath(indexPath)` looks very much > like the data source method you implemented above, it is a different method. > This one is a method on `UITableView`, not `UITableViewDataSource`. > > Hope this helps, > Ole > _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users