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.