title: popToRootViewController not returning popped UIViewControllers
body: <p>I found some strange behaviour with <code>popToRootViewController</code> method.
  According to it's declaration it should return popped viewControllers, but it's not if you call it during the <code>pushViewController</code></p>
  
  <pre><code>class HomeTabNavigationController: UINavigationController {
      override func popToRootViewController(animated: Bool) -&gt; [UIViewController]? {
          let viewControllers = super.popToRootViewController(animated: animated)
          if let vcs = viewControllers, vcs.count &gt; 0 {
              print("POPPED SOMETHING")
          }
          return viewControllers
      }
  }
  </code></pre>
  
  <p>This is working as expected, if animation did finish before I call this.
  But if I call this method during the animation still happening, it will return nil but it still pops to root viewcontroller after a slight delay.</p>
  
  <p>I prepared a quick demo of that problem:</p>
  
  <p><a href="https://github.com/grzegorzkrukowski/UINavigationControllerBug" rel="nofollow noreferrer">https://github.com/grzegorzkrukowski/UINavigationControllerBug</a></p>
  
  <p>Of course I have different use case in my real app, but problem is the same.
  Am I missing something or it's just a bug ?</p>