ios ios5 uidocumentinteraction

ios - UIDocumentInteractionController para abrir en el menú-No funciona



ios5 (3)

Basta con añadir el siguiente código:

[interactionController retain];

Implementé un UIDocumentInteractionController para enviar archivos a otras aplicaciones. El archivo es un archivo .txt.

Aquí está el código:

UIDocumentInteractionController *interactionController = [[UIDocumentInteractionController alloc] init]; [interactionController setURL:[NSURL fileURLWithPath:filePath]]; [interactionController setUTI:@"public.text"]; [interactionController setDelegate:self]; [interactionController presentOpenInMenuFromBarButtonItem:actionBarButtonItem animated:YES];

El menú se abre bien, mostrando aplicaciones como Pages, Dropbox, etc., como espero. Pero cuando toco uno de ellos, el menú Abrir en se cierra y no se realiza ninguna acción (el archivo no se envía y la aplicación de destino nunca se abre.

Intenté implementar los métodos delegados documentInteractionController:canPerformAction: y documentInteractionController:performAction: para activar copiar: e imprimir: llamadas usando el menú de opciones (a diferencia de abrir en el menú). no funcionó.

¿Cómo podría resolverse esto?


Encontré la respuesta, y es la gestión de la memoria. Creo el UIDocumentInteractionController y luego lo presento, pero no lo tengo como una variable de instancia. ARC lo desasigna antes de que tenga la oportunidad de hacer algo. Esto incluye enviar el documento a la aplicación externa.

Este error no apareció en el iPhone, pero en el iPad da un error porque la arquitectura de ventanas emergentes funciona de forma un poco diferente y termina intentando dibujarlo cuando se desasigna. Eso es lo que me alertó del error.


Este error también aparece en iPhone / iPod. Sólo establece:

@property (nonatomic, retain) UIDocumentInteractionController *docController;

y se conservará y el documento pasará a la nueva aplicación.