16

VC "B"를 모달로 표시하는 VC "A"가 있습니다. B는 UIDocumentMenuViewController UIDocumentMenuDelegate 프로토콜은 즉시 B의 dismiss(animated:completion:)가 호출되는 내가 왜 단서가 없다 호출되는 documentMenuWasCancelled(_ documentMenu:) 또는 documentMenu(_:didPickDocumentPicker:)로 B.UIDocumentMenuViewController 제시보기 컨트롤러를 닫습니다.

을 구현 제공한다. 당신은 내가 구현 위임 기능에 아무것도하지 않고 볼 수 있듯이

여기에 내 코드

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") 
} 

입니다. 그리고 아직도 B는 해산 당한다. 나는 그것을 얻지 않는다.

+0

프로젝트를 추가로 보내거나 최소한 전체 ViewController에 보낼 수 있습니까? –

+0

사실 지금 당장은 그것을 재현 할 수 없습니다 : D – lukwuerz

+0

두 컨트롤러를 어떻게 제시하고 있는지에 관한 문제가있을 수 있습니다. –

답변

0

이것은 동작을 클릭 할 때 또는 UIDocumentMenuViewController을 취소 할 때 호출되는 documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) 메서드에 의해 발생합니다. 그것이 도움이 https://stackoverflow.com/a/45505488/6381503

희망 :

나는 여기에 솔루션을 기록했다.