swift - UIDocumentPickerViewController 在我的 iPad 上测试时不起作用,但在模拟器上很好
问题描述
我正在创建一个应用程序来显示UIDocumentPickerViewController
iPad 选择的 PDF 文件。尽管以下代码适用于 Xcode 模拟器,但由于某种原因,它不适用于我的测试 iPad(iPad Mini,第 5 代)。我可以选择一个文件,并且它的 URL 似乎被适当地获取了;但是,不显示 PDF 文件。
如果您能帮我弄清楚发生了什么以及如何解决这个问题,我将不胜感激。
import UIKit
import PDFKit
class ViewController: UIViewController, UIGestureRecognizerDelegate, UIDocumentPickerDelegate {
@IBOutlet weak var pdfView: PDFView!
override func viewDidAppear(_ animated: Bool) {
//document picker
let documentPicker = UIDocumentPickerViewController(documentTypes: ["com.adobe.pdf"], in: .import)
documentPicker.delegate = self
documentPicker.allowsMultipleSelection = false
present(documentPicker, animated: true, completion: nil)
}
internal func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
print(url)
if let pdfDocument = PDFDocument(url: url)
{
pdfView.autoScales = true
pdfView.document = pdfDocument
pdfView.displayDirection = .horizontal
pdfView.usePageViewController(true, withViewOptions: [UIPageViewController.OptionsKey.interPageSpacing: 20])
} else{
print ("error, which is what I am seeing in my iPad now")
}
}
override func viewDidLoad(){
super.viewDidLoad()
}
环境细节:
- iPad mini:第五代,iOS 14
- X码:14
- 模拟器:iOS 14(我尝试了大多数模拟器,该应用程序都可以很好地运行)
解决方案
推荐阅读
- android - 我想在线性布局中的图像视图上设置搜索视图
- python - 如何在 python 中查看使用图形生成的网络?
- c++ - 为什么 clang 和 gcc 的这种不同行为
- javascript - javascript 算法“埃拉托色尼筛法”
- ruby-on-rails - Rails 简单表单,输入类型日期未显示所有年份(仅 11 年)
- python - 如何将三元素字典列表(第一个元素:术语,第二个元素:位置,第三个:值)转换为二元素字典列表
- python - 在 PostgreSQL 上使用 CTE() 的 SQLAlchemy 查询
- html - CSS - 将 Font Awesome 图标与一段文本对齐
- html - 角度属性无法设置未定义的属性
- angular - 订阅登录组件时登录方法抛出错误。声明类型既不是“void”也不是“any”的函数必须返回一个值