Pregunta

Tengo un controlador de vista que se presenta al presionar una de las pestañas en un TabBarController. En este controlador de vista, inicializo un UIIMAGEPICKERCOntroller en el método ViewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //Set imagePicker
    //-------------------------//
    _imagePicker = [[UIImagePickerController alloc] init];
    _imagePicker.delegate = self;
    _imagePicker.videoMaximumDuration = 10.0f;
}

La intención es mostrar el UIIMagePickerController en un momento posterior cuando se presiona un botón. Sin embargo, por alguna razón, cuando se presiona el icono de pestaña para este controlador de vista, hay un colgar de 3-4 segundos mientras se ejecuta este método ViewDidload. Cuando comento la línea _ImagePicker = [[UIIMAGEPICKERCONTROLLER ALTOC] INIT] No hay tiempo de suspensión y el controlador de vista se carga inmediatamente, como debería.

¿Alguien sabe por qué asignar e inicializar el UiImagePickerController está tardando tanto? Si es así, ¿hay alguna manera de acelerarlo además de ejecutarlo como un proceso de fondo? Parece que este no es un comportamiento normal.

Estoy usando iOS7 y no llamo a ViewWillapPear o ViewDidAppear.

¿Fue útil?

Solución

Resulta que esto es solo un problema cuando está en modo de depuración (cuando el iPhone está conectado y ejecutado a través de Xcode). Una vez que la misma aplicación se ejecuta sin estar conectada a Xcode, el retraso no ocurre.

Otros consejos

Prueba este iOS 12

//show a HUD or activityIndicator
dispatch_async(dispatch_queue_create("openPhotosCamera", NULL), ^{
   
    UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
    
    dispatch_async(dispatch_get_main_queue(), ^{
        //hide HUD or activityIndicator
        [presenter presentViewController:mediaUI animated:YES completion:nil];
    });
});

** El presentador es su ViewController / Self

Prueba esto.

    - (void)viewDidLoad{

    //Set imagePicker
    //-------------------------//
    _imagePicker = [[UIImagePickerController alloc] init];
    _imagePicker.delegate = self;
    _imagePicker.videoMaximumDuration = 10.0f;

[super viewDidLoad];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top