UIDocumentInteractionController не работает с iOS6
В моем приложении я использую UIDocumentInteractionController, чтобы открыть PDF-документ в программе Acrobat Reader (или любых других средствах просмотра), но с iOS6 он больше не работает.
Я пробовал много вещей, последний отсюда:
UIDocumentInteractionController *docController = [[UIDocumentInteractionController alloc]init];
docController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:documentsDirectory]];
docControler.UTI = @"com.adobe.pdf";
docController.delegate = self;
CGrect navRect = self.view.frame;
[docController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];
Когда этот код работает, мое приложение полностью зависает. Я попытался с "presentOpenInMenuFromBarButtonItem", но у меня та же проблема.
2 ответа
Назначьте контроллеру свойство со строгой ссылкой:
@property (nonatomic, strong) UIDocumentInteractionController *docController;
Я успешно использовал UIDocumentInteractionController в iOS 6. Пример кода:
self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:myPDFPath]];
[self.documentInteractionController presentOpenInMenuFromBarButtonItem:self.actionButton animated:YES];
Вам необходимо сохранить ссылку на UIDocumentInteractionController, иначе она будет выпущена до выполнения своей работы.
Кроме того, похоже, что вы используете путь к папке с документами, а не путь к конкретному файлу. Я не думаю, что это будет работать - передать путь к конкретному файлу.