title: LargeTitles UIScrollView does not support multiple observers implementing _scrollViewWillEndDraggingWithVelocity:targetContentOffset
body: <p>I have implemented large titles in my app with the following code:</p>
  
  <pre><code>if #available(iOS 11.0, *) {
              navigationController?.navigationBar.prefersLargeTitles = true
              navigationItem.largeTitleDisplayMode = .always
          } else {
              // Fallback on earlier versions
          }
  }
  
  func scrollViewDidScroll(_ scrollView: UIScrollView) {
      if scrollView.contentOffset.y &lt;= 0 {
          if #available(iOS 11.0, *) {
              self.navigationItem.largeTitleDisplayMode = .always
          } else {
              // Fallback on earlier versions
          }
      } else {
          if #available(iOS 11.0, *) {
              self.navigationItem.largeTitleDisplayMode = .never
          } else {
              // Fallback on earlier versions
          }
      }
      self.navigationController?.navigationBar.setNeedsLayout()
      self.view.setNeedsLayout()
      UIView.animate(withDuration: 0.01, animations: {
          self.navigationController?.navigationBar.layoutIfNeeded()
          self.view.layoutIfNeeded()
      })
  }
  </code></pre>
  
  <p>I am able to successfully toggle between views on a tabbar but when I push a view ontop of the tabbar controller and then pop it off using this code:</p>
  
  <pre><code>_ = self.navigationController?.popViewController(animated: true)
  </code></pre>
  
  <p>I get this crash when I toggle between views on the tabbar again:
  Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'ERROR: UIScrollView does not support multiple observers implementing _scrollViewWillEndDraggingWithVelocity:targetContentOffset:'</p>