title: Calling [UINavigationController pushViewController:animated:] is no-ops and it will trigger another pushViewController
body: <p>I am currently working on the following situation, i need to push two viewController (A and B) in sequence in short time.</p>
  <p>So this is what i do.</p>
  <ol>
  <li>First call, <code>[UINavigationController pushViewController:vcA animated:yes]</code></li>
  <li>In <code>[navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated]</code>, i call <code>[UINavigationController pushViewController:vcB animated:yes]</code></li>
  </ol>
  <p>Since i have overrides some of functions in <code>[UINavigationController pushViewController:animated]</code>, i want <code>[UINavigationController pushViewController:animated]</code> only triggered twice, one when pushing <code>vcA</code> and one when pushing <code>vcB</code>.</p>
  <p>However, the current situation is that <code>[UINavigationController pushViewController:animated]</code> will be triggered for three times:</p>
  <ol>
  <li>First time when we call <code>[UINavigationController pushViewController:vcA animated:yes]</code></li>
  <li>Second time when we call <code>[UINavigationController pushViewController:vcB animated:yes]</code>. However, this is strange because at this point, this is not doing anything. I checked <code>NavigationController.viewControllers</code> and find that <code>vcB</code> did not get pushed</li>
  <li>Third time, <code>[UINavigationController pushViewController:vcB animated:yes]</code> is triggered again, and it is triggered by <code>[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:]</code>, the full stacktrace can be seen <a href="https://i.stack.imgur.com/AIlxe.png" rel="nofollow noreferrer">here</a></li>
  </ol>
  <p>So my question is, where did the third  <code>[UINavigationController pushViewController:vcB animated:yes]</code> come from? I am certain that i did not override any <code>_UIViewControllerTransitionCoordinator</code>.</p>