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, иначе она будет выпущена до выполнения своей работы.

Кроме того, похоже, что вы используете путь к папке с документами, а не путь к конкретному файлу. Я не думаю, что это будет работать - передать путь к конкретному файлу.

Другие вопросы по тегам