title: UIViewController: [super init] calls [self initWithNibName bundle:]
body: <p>I have two init functions in my UIViewController subclass:</p>
  
  <pre><code>- (id)init
  {
      self = [super init];
      if (self)
      { 
             // Custom stuff
          return self;
      }
      return nil;
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
      self = [super initWithNibName: nibNameOrNil 
                             bundle: nibBundleOrNil];
      if (self) 
      {
          // Custom stuff
      }
      return self;
  }
  </code></pre>
  
  <p>I put the init function in to avoid the call to the initWithNibName:bundle: method.  I am trying to experiment with taking the xib file out.  Unfortunately, calling this init [[Myclass alloc] init] calls initWithNibName:bundle: through the call to [super init].</p>
  
  <p>First, where in the documentation should I be reading so that I would have expected the call to the parent init method to call my own initWithNibName:bundle: method?</p>
  
  <p>Second, how is this a good design choice on Apple's part.  I am not seeing why this is desirable behavior? (It may be that I am just not getting the big picture here so please feel free to clue me in.)</p>
  
  <p>Third, how do I get around it best.  Do I just take the initWithNibName:bundle: out of my code?  Is there never a case where I would like the option of using either a xib or a manual instantiation of the class.</p>