title: Description of initWithNibName, awakeFromNib and viewDidLoad?
body: <p>Is there a good overview of <code>initWithNibName</code>, <code>awakeFromNib</code>, and <code>viewDidLoad</code> that lays out the best way to use each of these and describes exactly what each does?  I find these very confusing.  In the template that's generated with a View Controller, the comment about <code>initWithNibName</code> says:</p>
  
  <blockquote>
    <p>The designated initializer. Override to perform setup that is required before the view is loaded.</p>
  </blockquote>
  
  <p>Except that this method never seems to be called (I'm using IB to set up the View Controller).  So should I use <code>awakeFromNib</code> or <code>viewDidLoad</code> to initialize instead?</p>