2012-09-27 19 views
11

Tengo una aplicación que comparte con instagram para iOS5 y ahora en iOS6, el uso compartido ya no funciona aunque canOpenURL devuelve verdadero y se ejecuta el código. Las imágenes se guardan en la carpeta de documentos de la aplicación con una extensión .igo. Esto se pasa a instagram con com.instagram.exclusivegram.UIDocumentInteractionController ya no funciona en iOS6

El código está debajo, ingresa la instrucción if y muestra "aquí en" pero no abre el cuadro de diálogo Compartir con como solía hacerlo en la parte inferior de la pantalla.

 NSLog(@"%@", _imgToUpload); 
     NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"]; 
     if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { 
      uidController = [[UIDocumentInteractionController alloc] init]; 
      //imageToUpload is a file path with .igo file extension 
      uidController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:_imgToUpload]]; 
      uidController.UTI = @"com.instagram.exclusivegram"; 
      uidController.delegate = self; 
      CGRect navRect = self.view.frame; 
      [uidController presentOpenInMenuFromRect:navRect inView:[UIApplication sharedApplication].keyWindow animated:YES]; 
      NSLog(@"here in"); 
     } 

_imgToUpload proporciona la ruta de archivo correcta también.

Gracias, Nick

Respuesta

11

Sólo hizo algunas pruebas y se encontró una solución. No se presente en la ventana clave.

[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES]; 

He probado esto y se solucionará el problema.

+0

¡gracias, me había dado cuenta y olvidé de publicar! buenos resultados –

+0

gracias esto funciona. ¿Pero hay alguna manera de entrar directamente en Instagram, sin la hoja de acciones "Abrir en"? – GeneCode

0

Otra razón para que el controlador de interacción uidocument no funcione en iOS6 es que ahora se usa la nueva hoja de acción/panel de inicio (muestra las aplicaciones disponibles para abrir el documento). Mi aplicación que funcionó bien al iniciar iBooks con iOS5 falló porque inicié desde viewDidLoad que era demasiado pronto y recibí un error en el controlador de vista actual "cuya vista no está en la jerarquía de la ventana", así que cambié mi código para realizar el selector después del retraso de 1 segundo. La aplicación ahora llama a iBooks a través del nuevo panel.

Cuestiones relacionadas