Mas*_*Ios 1 xcode share document ios 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()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我这样解决了我的问题
// Share doc
@IBAction func shareDocAction(_ sender: UIBarButtonItem) {
let path = Bundle.main.path(forResource: nameFile, ofType:"pdf")
let fileURL = URL(fileURLWithPath: path!)
// Create the Array which includes the files you want to share
var filesToShare = [Any]()
// Add the path of the file to the Array
filesToShare.append(fileURL)
// Make the activityViewContoller which shows the share-view
let activityViewController = UIActivityViewController(activityItems: filesToShare, applicationActivities: nil)
// Show the share-view
self.present(activityViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用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)
}
}
Run Code Online (Sandbox Code Playgroud)