title: Calling popViewControllerAnimated twice
body: <p>I've got a <code>UINavigationController</code> with a series of <code>UIViewControllers</code> on it.  Under some circumstances, I want to pop back exactly two levels.  I thought I could do it by calling <code>popViewControllerAnimated</code> twice in a row, but it turns out that the second time I call it, it's not popping anything and instead returning NULL.  Do I need to store a reference to my destination VC and call popToViewControllerAnimated instead?  I can do that, but it complicates my code since I'd have to pass the <code>UIViewController</code>* around as I'm pushing VCs onto the stack.</p>
  
  <p>Here's the relevant snippet:</p>
  
  <pre><code>UIViewController* one = [self.navigationController popViewControllerAnimated:YES];
  if (...) {
      // pop twice if we were doing XYZ
      UIViewController *two = [self.navigationController popViewControllerAnimated:YES];
      // stored in "one" and "two" for debugging, "two" is always 0 here.
  }
  </code></pre>
  
  <p>Am I doing something weird here?  I want to write idiomatic code, so if the "right" way is to call <code>popToViewControllerAnimated</code>, or something else entirely, I'll happily change it.</p>