UIDocumentMenuViewController取消呈现视图控制器

Luk*_*ger 19 uiviewcontroller presentmodalviewcontroller ios swift uidocumentmenuvc

我有一个VC"A"模式提供VC"B".B表示UIDocumentMenuViewControllerUIDocumentMenuDelegate协议在B中实现.

只要documentMenuWasCancelled(_ documentMenu:)或者documentMenu(_:didPickDocumentPicker:)被称为dismiss(animated:completion:)B的被调用,我不知道为什么.

这是我的代码

func presentDocumentPicker() {
    let documentTypes = [
        kUTTypeCompositeContent as String,
        kUTTypePDF as String,
        "com.microsoft.word.doc",
        "vnd.openxmlformats-officedocument.wordprocessingml.document"
    ]
    let documentMenuViewController = UIDocumentMenuViewController(documentTypes: documentTypes, in: .import)
    documentMenuViewController.delegate = self
    present(documentMenuViewController, animated: true, completion: nil)
}

// MARK: - Document Menu View Controller Delegate

func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
    print("did pick")
}

func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
    print("was cancelled")
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我在实现的委托函数中什么都不做.B仍然被解雇了.我不明白.

小智 1

这是由documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL)单击操作或取消时调用的方法引起的UIDocumentMenuViewController

我在这里发布了一个解决方案:https ://stackoverflow.com/a/45505488/6381503

希望能帮助到你。