title: navigationController is nil,when push the viewcontroller
body: <p>There are three <code>viewController</code>, <code>MainViewController</code> <code>ViewControllerB</code> and <code>ViewControllerC</code>. 
  <code>MainViewController</code> will be loaded when the app launch.</p>
  
  <pre><code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  
      // Override point for customization after application launch.
  
      self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
  
      MainViewController * main = [[MainViewController alloc]init];
      UINavigationController * navigationController = [[UINavigationController alloc]initWithRootViewController:main];
      self.window.rootViewController = navigationController;
      self.window.backgroundColor = [UIColor whiteColor];
      [self.window makeKeyAndVisible];
      [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
      return YES;       
  }
  </code></pre>
  
  <p>and there is a <code>button</code> on the <code>MainViewController</code>, present <code>ViewControllerB</code>,</p>
  
  <pre><code>UIViewController *rootViewController = [[UIApplication sharedApplication].keyWindow rootViewController];
  ViewControllerB * vcb=[[ViewControllerB alloc] init];
  [rootViewController presentViewController:vcb animated:YES completion:nil];
  </code></pre>
  
  <p>After the <code>ViewControllerB</code> appear, click the button push <code>ViewController</code>C.
  but the <code>navigationController</code> is <code>nil</code>. It can't push <code>ViewControllerC</code></p>
  
  <pre><code>[self.navigationController pushViewController:vcC animated:YES];
  </code></pre>