UIDocumentMenuViewController отклоняет представление контроллера представления

У меня есть VC "A", который представляет VC "B" модально. B представляет a UIDocumentMenuViewController Протокол UIDocumentMenuDelegate реализован в 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
    )
}

...

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

func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
    print("was cancelled")
}

Как вы можете видеть, я ничего не делаю в реализованной функции делегата. И все же Б уволен. Я не понимаю.

Ответы

Ответ 1

Это вызвано методом documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL), который вызывается при нажатии на действие или при отмене UIDocumentMenuViewController.

Я разместил решение здесь: fooobar.com/info/335546/...

Надеюсь, что это поможет.