title: self.navigationController is nil second time ViewController is loaded
body: <p>I have a delegate/handler that i have implemented on my UIViewControllers to handle timeouts to the a remote webservice.  When a request is made to my webservice, and a timeout http code is returned, the delegate is called and performs the following:</p>
  
  <pre><code>UINavigationController *navController = self.navigationController;
  
  if (navController) {
      [navController popToRootViewControllerAnimated:YES];
  } else {
      NSLog(@"navController is null/nil");
  }
  </code></pre>
  
  <p>If I do the following steps, <code>navController</code> is instantiated correctly and the <code>popToRootViewController</code> action occurs.</p>
  
  <ol>
  <li>Authenticate my app with the webservice on a Login ViewController</li>
  <li>Auto trigger a segue to a CustomMenuViewController</li>
  <li>Wait for the webservice to timeout remotely</li>
  <li>Click to trigger a segue to CustomSubMenuViewController</li>
  </ol>
  
  <p>Now, if i do the following steps, the else clause in the above code block is triggered because for some reasons navController isn't being set correctly:</p>
  
  <ol>
  <li>Authenticate my app with the webservice on a
  CustomLoginViewController</li>
  <li>Auto segue to a CustomMenuViewController</li>
  <li>Immediately click to trigger a segue to CustomSubMenuViewController</li>
  <li>Click back button to trigger a pop</li>
  <li>Wait for the webservice to timeout remotely</li>
  <li>Click to trigger a segue to the same CustomSubMenuViewController</li>
  </ol>
  
  <p>My question is: why when i load a ViewController for the second time, does self.navigationController return null?</p>
  
  <p>The call stack in the above example should look like this:
  <code>NavigationController -&gt; CustomLoginViewController -&gt; CustomMenuViewController -&gt; CustomSubMenuViewController</code></p>
  
  <p>Thanks</p>
  
  <p>UPDATE: 
  Still haven't made any progress on this issue!</p>