pushViewController Tomando demasiado para mostrar la vista

Tengo un ViewController muy ligero, no hace nada en viewDidLoad. Estoy presionando esta vista en la parte superior de un control de navigation. El método que hace esta acción se llama desde dentro de un bloque. Después de la llamada a showView, agregué un NSLog, y ese logging se imprime en la console muy rápido, pero la vista tarda mucho en cargar … Realmente no entiendo lo que está sucediendo … ¿alguna idea?

ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) { [self showView]; NSLog(@"EXECUTED"); }); - (void) showView{ TestViewController *test = [[TestViewController alloc]init]; [self.navigationController pushViewController:test animated:NO]; } 

De los documentos para ABAddressBookRequestAccessWithCompletion :

El controller de finalización se invoca en una queue arbitraria. Si su aplicación utiliza una libreta de direcciones en toda la aplicación, usted es responsable de garantizar que todo el uso de esa libreta de direcciones se envíe a una sola queue para garantizar una operación segura de subprocesss.

Debe asegurarse de que su código de interfaz de usuario se llame al hilo principal.

 ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error { dispatch_async(dispatch_get_main_queue(), ^{ [self showView]; NSLog(@"EXECUTED"); }); }); 

Este podría no ser el único problema, pero según los documentos , el controller de finalización pasado a ABAddressBookRequestAccessWithCompletion se ABAddressBookRequestAccessWithCompletion en una queue arbitraria. -showView solo debería llamarse en la queue principal ya que se trata de objects UIViewController .

La otra cosa a preguntar es ¿qué más está sucediendo en la queue principal? ¿Hay otras tareas de larga duración que podrían estar bloqueando las actualizaciones de la interfaz de usuario?