swift40 实现展示手机内所有pdf文档让用户选择
以下是Swift 4.0实现展示手机内所有pdf文档并让用户选择的示例代码:
- 导入必要的库
import UIKit
import QuickLook
- 创建ViewController并遵循QLPreviewControllerDataSource和QLPreviewControllerDelegate协议
class ViewController: UIViewController, QLPreviewControllerDataSource, QLPreviewControllerDelegate {
// ...
}
- 创建一个数组来存储所有的pdf文件路径
var pdfFiles: [URL] = []
- 在viewDidLoad函数中获取所有pdf文件路径
override func viewDidLoad() {
super.viewDidLoad()
// 获取所有pdf文件路径
let fileManager = FileManager.default
let documentsUrl = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
do {
let files = try fileManager.contentsOfDirectory(at: documentsUrl, includingPropertiesForKeys: nil)
for file in files {
if file.pathExtension == "pdf" {
pdfFiles.append(file)
}
}
} catch {
print(error)
}
}
- 实现QLPreviewControllerDataSource协议中的方法
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
return pdfFiles.count
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
return pdfFiles[index] as QLPreviewItem
}
- 实现一个方法来打开QLPreviewController
func openPreviewController() {
let previewController = QLPreviewController()
previewController.dataSource = self
previewController.delegate = self
navigationController?.pushViewController(previewController, animated: true)
}
- 在需要展示pdf文件的地方调用openPreviewController方法
openPreviewController()
- 运行程序,您将看到所有pdf文件的列表。选择一个文件,它将在QLPreviewController中打开。
原文地址: https://www.cveoy.top/t/topic/b9CL 著作权归作者所有。请勿转载和采集!