gpt4 book ai didi

ios - 基于文档的应用程序

转载 作者:行者123 更新时间:2023-11-28 06:03:45 25 4
gpt4 key购买 nike

Xcode 9/iOS 11:我的应用程序创建 pdf 文件,这些文件使用来自核心数据库的数据呈现。 pdf 是从 WebView 创建的,并存储在文档目录中。到目前为止一切正常。我可以在 Apple 的文件应用程序中打开 pdf 文件,甚至可以在那里进行编辑。我想在我的应用程序中实现 DocumentBrowserViewController。我使用了 Xcode 9 中的模板。我无法像在 Apple 的文件应用程序中那样在 DocumentViewController 中显示创建的 pdf 文件。我可以选择文档,但 DocumentViewController 仅显示文件名和完成按钮。从模板中显示此 DocumentViewController 中现有 pdf 的最简单方法是什么?我必须在哪里实现相关代码?

来自 Xcode9 模板的代码:

类 DocumentViewController: UIViewController {

@IBOutlet weak var documentNameLabel: UILabel!

var document: UIDocument?

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

// Access the document
document?.open(completionHandler: { (success) in
if success {
// Display the content of the document, e.g.:
self.documentNameLabel.text = self.document?.fileURL.lastPathComponent

// --> How to show/load the pdf here? Do I have to create a UIView here first?

} else {
// Make sure to handle the failed import appropriately, e.g., by presenting an error message to the user.
}
})
}

这是来自 Xcode 9 模板的 UIDocument 的子类:

类文档:UIDocument {

var pdfData: PreviewViewController?

override func contents(forType typeName: String) throws -> Any {
// Encode your document with an instance of NSData or NSFileWrapper
return Data()

}

override func load(fromContents contents: Any, ofType typeName: String?) throws {
// --> do I have to load the pdf here?
}

我在应用程序开发方面不是很有经验。我在 iTunesU 上观看了 Paul Hagerty 的 cs193p 类(class),内容是关于 UIDocument 的持久性。但他正在保存应用程序的模型,我有一个 pdf。有没有一种简单的方法来显示 pdf 文件?我尝试了不同的方式来加载 pdf,但我不确定是否必须先创建 UIView。文件应用程序的一个不错的功能是您可以编辑或通过电子邮件发送 pdf。

最佳答案

UIDocumentBrowserViewController 的重要资源是 2017 年的 WWDC 视频:

Building Great Document-based Apps in iOS 11 - WWDC 2017

func load 的评论中回答您的问题。是的,您可以在此处以 Data 的形式获取 pdf:

override func load(fromContents contents: Any, ofType typeName: String?) throws {
guard let data = contents as? Data else { return }
}

但是您应该在 DocumentViewController 中将 fileURL 加载到 UIWebView 中,这是 UIDocument 的属性 可以轻松显示pdf文件。看看这里:https://stackoverflow.com/a/38792456/4089350

然后在您的 document.open 函数中将 fileURL 传递给您的 UIWebView

关于ios - 基于文档的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48795947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com