title: NSLogging UILabel's text outputs null
body: <p>I have a custom view controller called <code>TimerViewController</code> and subclasses of this called <code>FirstViewController</code> and <code>FourthViewController</code>.</p>
  
  <p>I declared an instance of <code>FirstViewController</code> in <code>FirstViewController</code>'s <code>.</code>h named <code>controller</code>.</p>
  
  <p>In the <code>viewDidLoad</code> method of <code>FourthViewController</code>'s <code>.m</code>, I have:</p>
  
  
  
  <pre class="lang-objectivec prettyprint-override"><code>controller = [self.storyboard instantiateViewControllerWithIdentifier:@"mainController"];
  </code></pre>
  
  <p>In the storyboard, I've declared the view controller ID as <code>mainController</code> and declared a custom class of <code>FourthViewController</code>. Then, in <code>FourthViewController</code>'s <code>.m</code> I have:</p>
  
  <pre class="lang-objectivec prettyprint-override"><code>controller.mainLab.text = [NSMutableString stringWithFormat:@"This is a string"];
  NSLog(@"%@", controller.mainLab.text);
  </code></pre>
  
  <p>This, however, outputs <code>(null)</code>.</p>
  
  <p>Why does this happen?</p>