title: UINavigationController taking time to push ViewController
body: <p>Take the following code:</p>
  
  <pre><code>[[[Resource alloc] init] get:@"/api/v1/basic_user/40/" params:nil completion:^(NSURLResponse *response, NSDictionary *data, NSError *connectionError) {
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
      HomeViewController *homeView = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
  
      NSLog(@"pushing...");
      [self.navigationController pushViewController:homeView animated:YES];
  }];
  </code></pre>
  
  <p>This prints "pushing" and after about 10(not precisely) seconds my <code>HomeViewController</code> appears.
  The <code>initWithCoder</code>(the ViewController is instantiated from the Storyboard) has absolutely nothing. And that gets called just right after I push my VC. </p>
  
  <p>But my <code>viewDidLoad</code> method is taking seconds to load. I can't tell how many seconds because it's not exact. It sometimes doesn't load at all! (e.g. my <code>HomeViewController</code> does not show up.</p>
  
  <p>Here's the trickier part. If I move my push method outside my block everything works like a charm.</p>
  
  <p>What's going on? Why is my VC so slow when inside the block?</p>
  
  <p>EDIT: </p>
  
  <p>The only thing that uses thread when the method in my resource is called is the code below:</p>
  
  <pre><code>[NSURLConnection sendAsynchronousRequest:_request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError){
      NSLog(@"%@", [[NSJSONSerialization JSONObjectWithData:data options:0 error:nil] description]);
      [self toggleNetworkActivityIndicator];
  
      _lastResponse = response;
      success(response, data, connectionError);
  }];
  </code></pre>