title: UITableView didSelectRowAt is not called iOS 10, but works for 9.3.5
body: <p>There are lots of questions regarding this problem, but the answers I have found so far are not applicable. In this case, the table works correctly in iOS 9.3.5, but not for iOS 10 (or 10.3.1)</p>
  
  <p>I have ruled out:</p>
  
  <ul>
  <li>Not setting up the delegate properly. The delegate performs 3 functions, <code>didSelectRowAt</code>, <code>heightForRowAt</code>, and <code>editActionsForRowAt</code>. <em>The latter is the right-to-left swipe which gives the option to perform the exact same functionality as selecting the row.</em>. These three functions work correctly on v9.3.5 (as tested via simulator and and older iPad I test with.) When I use v10 via the simulator or my iPhone SE, the <code>heightForRowAt</code>, and <code>editActionsForRowAt</code> work but not the <code>didSelectRowAt</code> (and for that matter - I tried <code>willSelectRowAt</code>. It also did not work for v10.)</li>
  <li>Any typographical error (because it works for 9.3.5)</li>
  </ul>
  
  <p>I have not been able to find anything about a Swift change regarding <code>tableView(:didSelectRowAt)</code> from iOS 9 to iOS 10.</p>
  
  <p><strong>Background</strong></p>
  
  <p>I have a view controller with a corresponding xib ("DetailVC"). This xib has a label then a tableview underneath the label. The table's cell is another xib.</p>
  
  <p>The view controller presented via</p>
  
  <pre><code>let uomVC = DetailVC()
  self.navigationController?.pushViewController(uomVC, animated: true)
  </code></pre>
  
  <p>Then within DetailVC, I use a NSFetchedDataController and connect it to tableview via the tableView Data Source delegate. (Core data loads and displays great.)</p>
  
  <p><strong>Code</strong> (I'll post additional code as needed/ requested - Swift 3)</p>
  
  <p><em>viewDidLoad() - partial</em></p>
  
  <pre><code>let nib: String = "DetailCell"
  let reuseID: String = "detailCell"
  tableView.register(UINib.init(nibName: nib, bundle: nil), forCellReuseIdentifier: reuseID)
  </code></pre>
  
  <p><em>tableView(:cellForRowAt)</em></p>
  
  <pre><code>func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: reuseID) as! IngredientDetailCell
      cell.present(ingredient: _fetchedResultsController.object(at: indexPath))
      cell.isUserInteractionEnabled = true // Added later as a guess per SO suggestions
      return cell
  }
  </code></pre>
  
  <p>For arguments sake - this won't print</p>
  
  <pre><code>func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {      
      print("Selected a row")
      // delegate?.selectedIngredient(_fetchedResultsController.object(at: indexPath))
      // self.navigationController?.popViewController(animated: true)
  }
  </code></pre>
  
  <p><strong>View</strong></p>
  
  <p><a href="https://i.stack.imgur.com/NffgF.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/NffgF.png" alt="tableViewCell"></a></p>