title: When to use addChildViewController vs pushViewController
body: <p>I just watched a 2011 <code>WWDC</code> presentation on "Implementing UIViewController Containment" (<a href="http://developer.apple.com/videos/wwdc/2011/?id=102" rel="nofollow noreferrer">here's a link to the video</a>)</p>
  
  <p>They mentioned both of these ways of adding viewControllers to the screen, and I would appreciate some clarification on best practices...</p>
  
  <p><strong>addChildViewController / removeFromParentViewController</strong>
  <br>used with an @property (nonatomic, readonly) NSArray *childViewControllers and <code>[self transitionFromViewController:currentView toViewController:nextView duration: options: animations: completion:];</code></p>
  
  <p><strong>pushViewController: animated: / popViewControllerAnimated</strong>
  <br>they really quickly skimmed past this in the presentation</p>
  
  <p>In my apps I use all custom viewControllers, and until today I have always managed them with:<br></p>
  
  <pre><code>[nextController performSelector:@selector(setDelegate:) withObject:self];
  [currentPageController.view removeFromSuperview];
  [self.view addSubview:nextController.view];
  </code></pre>
  
  <p>But I understand now that this is bad practice, and I'm wondering what is the correct way to use "addChildViewController" and what is the correct way to use "pushViewController"?</p>
  
  <p>I really appreciate your thoughts on the matter!</p>