Я использую экземпляр UIDocumentInteractionController
, чтобы предложить пользователю возможность открыть данный документ, если на устройстве установлено соответствующее приложение.UIDocumentInteractionController - Показать опцию «Быстрый просмотр»
Apple's documentation for the QuickLook Framework упоминает, что:
Для отображения Quick Look контроллера предварительного просмотра, вы можете использовать любого из этих вариантов:
- задвиньте его в поле зрения, используя объект UINavigationController.
- Представьте, что это модально, полноэкранный режим, используя текущий методModalViewController: анимированный: метод его родительского класса, UIViewController.
- Present контроллер взаимодействия документов (как описано в предпросмотра и открытия файлов. Затем пользователь может вызвать Быстрый контроллер Смотри просмотр, выбрав Quick Look из меню настроек контроллера взаимодействия можно документа.
(курсив моего)
Я выбираю этот третий вариант: Вместо того, чтобы использовать QLPreviewController
, я представляю UIDocumentInteractionController
; это мой код:
@IBAction func openDocument(sender: AnyObject) {
let interactionController = UIDocumentInteractionController(URL: documentURL)
interactionController.delegate = self
// First, attempt to show the "Open with... (app)" menu. Will fail and
// do nothing if no app is present that can open the specified document
// type.
let result = interactionController.presentOpenInMenuFromRect(
self.view.frame,
inView: self.view,
animated: true
)
if result == false {
// Fall back to options view:
interactionController.presentOptionsMenuFromRect(
self.view.frame,
inView: self.view,
animated: true)
}
}
Путь отступления запускается на выполнение (меню опций), потому что у меня нет какого-либо приложения, которое может открыть DOCX. Однако вариант упоминается "Quick Look" нет:
Что мне не хватает?
Примечание: Я не осуществляет какой-либо из методов UIDocumentInteractionControllerDelegate
.