title: definesPresentationContext should be set to YES, but breaks navigation when used in combination with a UISearchController
body: <p>For a setup with a <code>UISearchController</code> in a regular <code>UIViewController</code> (that also has a table view with some items), I get the following warning <code>The topViewController of the navigation controller containing the presented search controller must have definesPresentationContext set to YES</code></p>
  
  <p>However, setting <code>definesPresentationContext = true</code> on the ViewController breaks my ability to push a new ViewController on the NavigationController while the Search is active, which sorta defeats the purpose of the search in the first place (I want to search and then if the user taps on the result, push it on the navigation stack).</p>
  
  <p>I already set <code>searchController.isActive = false</code> prior to attempting to push the new ViewController.</p>
  
  <p>Is there anything else I need to do in order to dismiss a <code>UISearchController</code> before pushing another view?</p>
  
  <pre><code>// The ViewController is presented inside a UINavigationController
  class ViewController: UIViewController, UITableViewDelegate {
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          let searchController = UISearchController(searchResultsController: nil)
          navigationItem.searchController = searchController
  
          // If not set to true, triggers the following error:
          //    "The topViewController of the navigation controller containing
          //     the presented search controller must have definesPresentationContext set to YES"
          definesPresentationContext = true
      }
  
      func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
          navigationItem.searchController.isActive = false
  
          // If definesPresentationContext is true, triggers the following 
          // error when the search bar is/was focused at the time of selection:
          //     "pushViewController:animated: called on UINavigationController while an existing transition
          //      or presentation is occurring; the navigation stack will not be updated."
          navigationController?.pushViewController(UIViewController(), animated: true)
      }
  }
  </code></pre>