iphone - bar - Significado de la advertencia "mientras una presentación está en progreso!"
navigation controller swift 4 example (8)
Como se dijo antes, esto significa que está intentando presentar 2 ventanas modales o ventanas emergentes al mismo tiempo. Pero en mi caso no he visto ninguna ventana modal o ventana emergente cuando recibo este mensaje.
El motivo del error en mi caso fue el siguiente. Cuando llamé a la ventana emergente para que apareciera por primera vez, fue otro error que impidió que se mostrara la ventana emergente, pero de alguna manera sigue estando en estado "presentado". Todos los siguientes intentos de mostrar el popover fallaron con un error de tiempo de ejecución "mientras una presentación está en progreso!".
Por lo tanto, si se encuentra en la misma situación, busque en el registro e intente encontrar el primer error que comienza con *** WebKit discarded an uncaught exception in the...
Espero que le ahorre el tiempo a alguien.
Cuando estoy integrando el Instagram en mi proyecto. UIImagePickerController
una image
de UIImagePickerController
y después quiero enviarla a Instagram Pero cuando envío una image
a Instagram por UIDocumentInteractionController
método delegado presentOptionsMenuFromRect:inView: animated:
like this
[documentInteractionController presentOptionsMenuFromRect:CGRectZero inView:self.view animated:YES];
La advertencia llega Advertencia: ¡Intente presentar <_UIDocumentActivityViewController: 0x7584780> mientras hay una presentación en curso!
La aplicación no se bloquea. Pero no estoy consiguiendo el problema. Por qué viene esta advertencia y qué significa. Busqué en Internet y leí preguntas sobre esto, pero no obtuve ninguna respuesta. Ayuadame !!
Esto significa que estás presentando 2 ViewControllers al mismo tiempo. Llame a su delegado después de que se complete la primera presentación.
Esto también puede ocurrir si tiene (digamos) un UIButton conectado a un IBAction para presentar un ViewController, y también crear un segmento en el Storyboard desde el botón hasta el ViewController objetivo.
Esto sucedió cuando olvidé eliminar la conexión IBAction de un UIButton cuando cambié algunas interacciones.
La eliminación de la conexión de IBAction o de segue lo resolverá.
Para aquellos que necesitan / desean la versión swift 3, aquí está
viewController1.dismiss(animated: true, completion: {
self.present(self.viewController1, animated: true)
})
viewController1 es el viewcontroller que desea presentar.
Recibí este mensaje porque copié pegado un botón que ya había enviado un evento adjunto y continué creando otra conexión ya que se suponía que el nuevo botón abría una nueva vista.
Así que técnicamente estaba tratando de abrir 2 vistas al mismo tiempo.
Significa que está presentando o desechando UIImagePickerController
e intentando presentar UIDocumentInteractionController
, mientras que la primera presentación o el despido no se completa.
Tratar..
double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self performSegueWithIdentifier:@"Identifier" sender:self];
});
// Breaks
[viewController1 dismissViewControllerAnimated:YES completion:NULL];
[self presentViewController:viewController2 animated:YES completion:NULL];
// Does not break
[viewController1 dismissViewControllerAnimated:YES completion:^{
[self presentViewController:viewController2 animated:YES completion:NULL];
}];
La versión Swift 3 del código anterior se vería así:
// Breaks
viewController1.dismiss(animated: true)
present(viewController2, animated: true)
// Does not break
viewController1.dismiss(animated: true) {
present(viewController2, animated: true)
}
Tenga en cuenta el uso del controlador de finalización en el segundo ejemplo anterior.
Solo presenta viewController2
después de que viewController1
haya viewController1
completo.