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/...
Надеюсь, что это поможет.