首页 > 解决方案 > 分享 pdf 文件 .Swift

问题描述

我正在尝试共享我在 pdfView 中打开的 pdf 文档。但由于某种原因,activityViewController 是空的,我无法在某处发送文件。请告诉我如何修复我的代码!

我的 ViewController 的代码

pdfView.swift

import UIKit
import PDFKit

var nameFile:String?
var titleChapter:String?

class pdfView: UIViewController {

    @IBOutlet weak var pdfDocView: PDFView!

    // Share doc
    @IBAction func shareDocAction(_ sender: UIBarButtonItem) {

        let path = Bundle.main.path(forResource: nameFile,  ofType:"pdf")
        let pdfDocument = PDFDocument(url: URL(fileURLWithPath: path!))

        var filesToShare = [Any]()
        filesToShare.append(pdfDocument!)

        let activityViewController = UIActivityViewController(activityItems: filesToShare , applicationActivities: nil)
        activityViewController.popoverPresentationController?.sourceView = self.view
        present(activityViewController, animated: true, completion: nil)
    }

    //Pdf view
    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationItem.title = titleChapter
        navigationController?.navigationBar.barTintColor = .white

        //name Documents for view
        if let path = Bundle.main.path(forResource: nameFile,  ofType:"pdf") {
            if let pdfDocument = PDFDocument(url: URL(fileURLWithPath: path)) {
                pdfDocView.displayMode = .singlePageContinuous
                pdfDocView.autoScales = true
                pdfDocView.displayDirection = .vertical
                pdfDocView.document = pdfDocument
                pdfDocView.canZoomIn()
                pdfDocView.canZoomOut()

            }

        }


    }

}

标签: iosswiftxcodesharedocument

解决方案


您还可以使用dataRepresentation以下方式共享 PDFDocument:

func sharePDF(_ filePDF: PDFDocument) {
    if let pdfData = filePDF.dataRepresentation() {
        let objectsToShare = [pdfData]
        let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
        activityVC.popoverPresentationController?.sourceView = self.button

        self.present(activityVC, animated: true, completion: nil)
    }
}

推荐阅读