iOS 7 tarda en abrir UITableViewController con UIPickerView

De acuerdo con esta pregunta y la amable respuesta de KyleC, he implementado un UITableViewController que tiene muchas filas que dependen de una búsqueda de Core Data. Cada fila muestra un NSString simple (nombre del object obtenido) y tiene un UIPickerView oculto.

El problema es que es absolutamente evidente que cuando UITableViewController la fila en el UITableViewController anterior que abre el UITableViewController con las vistas del selector, hay algo de retraso en la transición de segue.

Lo sé porque los controlleres anteriores (incluso realizan requestes de datos básicos) no son tan lentos en la transición.

¿Pueden algunos UIPickerView hacer la transición tan lenta y bastante fea? ¿En qué modo debo usar Instruments para entender cuál es el culpable lento?

Más importante: si la lentitud se deriva de los numbers de UIPickerView , ¿cómo puedo optimizar esto?

Quiero aclarar que la aplicación es muy ligera y que los objects buscados de Core Data son solo 4, con 4 UIPickerView s.

Parece que UIPickerViews y UIDatePickers se cargan muy lentamente desde storyboards (y posiblemente xib's, pero no lo he probado). En un iPad Air tarda unos 3 segundos en cargar un UITableViewController estático que contiene 4 UIPickerViews y 8 UIDatePickers en celdas "ocultas". (¡3 segundos es una eternidad para una interfaz de usuario nativa que se ejecuta en el último y mejor hardware!)

La solución que encontré es crear UIPickerViews y UIDatePickers mediante progtwigción antes de revelar la fila oculta. Lo que hice fue crear celdas vacías en Interface Builder, vincular esas celdas a properties IBOutlet y luego crear las vistas DatePickers y Picker con estos methods:

 - (UIDatePicker*)datePickerForCell:(UITableViewCell*)cell { UIDatePicker * datePicker = [[UIDatePicker alloc] initWithFrame:cell.bounds]; [datePicker setDatePickerMode:UIDatePickerModeDateAndTime]; [datePicker addTarget:self action:@selector(pickerDateChanged:) forControlEvents:UIControlEventValueChanged]; datePicker.hidden = YES; [cell addSubview:datePicker]; return datePicker; } - (UIPickerView*)pickerViewForCell:(UITableViewCell*)cell { UIPickerView * picker = [[UIPickerView alloc] initWithFrame:cell.bounds]; [picker setDelegate:self]; [picker setDataSource:self]; picker.hidden = YES; [cell addSubview:picker]; return picker; } 

Esto networkingujo el time de carga para UITableViewController a unas pocas décimas de segundo y no parece afectar la animation de mostrar una vista de tabla oculta.

Nota: Intenté crear los selectores en el método viewDidAppear: pero parecía retrasar la interfaz de usuario.