title: Subclassing UIViewController, viewDidLoad called repeatedly
body: <p>I subclassed <code>UIViewController</code> as <code>STViewController</code> and noticed that classes inheriting from <code>STViewController</code> have their <code>viewDidLoad</code> method being called repeatedly. Ultimately crashing the app. <code>STViewController</code> is basically a blank implementation at this point. I am subclassing as shown below:</p>
  
  <pre><code>#import "STViewController.h"
  
  @interface WelcomeViewController : STViewController {
  </code></pre>
  
  <p>STViewController.h</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  @interface STViewController : UIViewController
  {
  }
  @end
  </code></pre>
  
  <p>STViewController.m</p>
  
  <pre><code>#import "STViewController.h"
  
  
  @implementation STViewController
  
  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
      if (self) {
          // Custom initialization
      }
      return self;
  }
  
  - (void)loadView
  {
      // Implement loadView to create a view hierarchy programmatically, without using a nib.
  }
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.
  }
  
  - (void)viewDidUnload
  {
      [super viewDidUnload];
      // Release any retained subviews of the main view.
  }
  
  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
  {
      return (interfaceOrientation == UIInterfaceOrientationPortrait);
  }
  @end
  </code></pre>
  
  <p>viewDidLoad() from WelcomeViewController.m</p>
  
  <pre><code>- (void)viewDidLoad
  {
      [super viewDidLoad];
  
      // hide the buttons
      [[self signUp] setHidden: YES];
      [[self logIn] setHidden: YES];
  }
  </code></pre>