title: Performing segue takes over a second
body: <p>I have a segue that takes just over a second to perform. The destination view controller is rather big, but even if I comment out the entire <code>viewDidLoad</code> function, it still takes this much time. Can this happen from having too many properties and imports alone? (I have around 30 of each) </p>
  
  <p>This is a trace of the events on a relative time frame:</p>
  
  <pre><code>00:00:00.000 Performing segue
  00:00:01.297 View did load
  00:00:01.315 View did appear
  </code></pre>
  
  <p>Things I have tried:</p>
  
  <ul>
  <li>Emptied <code>viewDidLoad</code></li>
  <li>Emptied <code>prepareForSegue</code></li>
  <li>Making sure the segue is being run in the main thread</li>
  <li>Emptied <code>viewWillAppear</code> (not that it should make a difference)</li>
  </ul>
  
  <p>I am running this on an iPhone 6 Plus.</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>The segue is being performed like this:</p>
  
  <pre><code>- (void)checkForPermissions
  {
      [self.permissionsUIGateway checkCameraPermissionSettingsFromViewController:self completionHandler:^(BOOL granted) {
          if (granted)
          {
              dispatch_async(dispatch_get_main_queue(), ^{
                  [self performSegueWithIdentifier:@"goToCamera" sender:self];
              });
          }
      }];
  }
  </code></pre>
  
  <p><strong>Edit 2:</strong></p>
  
  <p>I have found out that either using <code>presentViewController:animated:completion</code> or changing the segue from <em>Present modally</em> to <em>Show</em> makes the delay completely disappear. This solves my problem, but I will leave the question open since I still have no idea why this solves it.</p>