I would like to implement a UITableViewController that works in a similar fashion to the Episodes (under the My Podcasts) view in the iOS 7 Podcasts app in that its cells should perform one segue if I tap on the (left part of the) cell and perform another segue if I tap on the cell's accessory view.
My UITableViewController implements both tableView:didSelectRowAtIndexPath: and tableView:accessoryButtonTappedForRowWithIndexPath: from UITableViewDelegate, however only the former method gets called, regardless of whether I tap on a cells accessory button or somewhere else inside the cell.
So how can the necessary distinction be made. I assume it would be possible to place a UITapGestureRecognizer on the cell's contentView and use its event handler instead of tableView:didSelectRowAtIndexPath:, but hope there is a simpler scheme as well.
I have meanwhile found what appears to be the right answer here:
iOS will make a distinction and call either
tableView:didSelectRowAtIndexPath:ortableView:accessoryButtonTappedForRowWithIndexPath:if the accessory (as set in IB) is a detail disclosure button (or detail button), but not if it is a disclosure indicator. Indeed Apple's Podcasts app uses a detail button in the described context.This is the relevant excerpt from (an older version of) the documentation: