ABOUT ME

Today
Yesterday
Total
  • Swift 4에서 PDF 파일 표시
    카테고리 없음 2020. 8. 12. 10:53

    질문

    import UIKit
    import WebKit
    
    class ViewController: UIViewController, UIDocumentInteractionControllerDelegate {
    
        var docController: UIDocumentInteractionController!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            docController = UIDocumentInteractionController.init(url: URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(urlVal!))
            docController.delegate = self
            docController.presentPreview(animated: true)       
        }
    
    
        func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
                return self
         }
    }

    위의 코드는 pdf 파일을 표시 할 수 없습니다. 누구든지 도울 수 있습니까?


    답변1

    코드를 보면 UIDocumentInteractionControllerDelegate 대리자 메서드를 추가하지 못한 것 같습니다.

        class ViewController: UIViewController,UIDocumentInteractionControllerDelegate {
            override func viewDidLoad() {
                super.viewDidLoad()
    
               var docController = UIDocumentInteractionController.init(url: URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(urlVal!))
                docController.delegate = self
                docController.presentPreview(animated: true)
            }
            func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
                return self
            }
        }

    또는

    PDF를 WKWebView 에로드하여 볼 수도 있습니다.

        override func viewDidLoad() {
            super.viewDidLoad()
    
            let pdfFilePath = Bundle.main.url(forResource: "iostutorial", withExtension: "pdf")
            let urlRequest = URLRequest.init(url: pdfFilePath!)
            webView = WKWebView(frame: self.view.frame)
            webView.load(request)
            self.view.addSubview(webView)
    
        }

    여기에 이미지 설명 입력



    답변2

    기본적으로 UIDocumentInteractionControllerDelegate 구현이 누락되었습니다. 미리보기를 위해이 메소드를 구현해야합니다.

        func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController

    미리보기를 표시하는 데 필요한 ViewController를 반환합니다. 셀프 뷰 컨트롤러를 전달하면 기존 뷰 컨트롤러에 모달로 PDF 미리보기가 표시됩니다. 동일한 컨트롤러에서 미리보기를 표시하려면 View 컨트롤러에서이 작업을 수행하십시오.

        func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
            return self
        }

    코드에서 이미이 작업을 수행하고 있다면 PDF URL 경로가 잘못되었을 가능성이 높습니다.



    답변3

    대신 Quicklook 프레임워크를 사용하고 다양한 Document 유형을 지원합니다.

    • iWork Document
    • Microsoft Office Document
    • PDF 파일
    • 이미지
    • 텍스트 파일
    • 서식있는 텍스트 Document
    • 쉼표로 구분 된 값 파일 (csv)

    관련 Document의 공유도 지원하고 구현하기 쉽습니다.

    Swift에서 수행하는 방법에 대한이 튜토리얼을 따르십시오. https://www.appcoda.com/빠른프레임워크/



     

     

     

     

    출처 : https://stackoverflow.com/questions/48577112/display-pdf-file-in-swift-4

    댓글

Designed by Tistory.