我正在尽可能使用SwiftUI创建一个新的iOS应用程序。但是,我希望能够生成包含一些数据的PDF。在没有SwiftUI的类似项目中,我可以做到这一点
let docController = UIDocumentInteractionController.init(url: "PATH_TO_FILE")
docController.delegate = self
self.dismiss(animated: false, completion: {
docController.presentPreview(animated: true)
})
只要在视图控制器的其他地方我就有这个:
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
我准备好了。我不知道的是如何将其应用到UIViewControllerRepresentable并让它在SwiftUI中工作。我的UIViewControllerRepresentable应该成为UIViewController吗?然后我如何设置代理和presentPreview?这会像在标准iOS应用中那样覆盖任何视图并在SwiftUI应用上全屏显示吗?谢谢
3条答案
按热度按时间oalqel3c1#
以下是集成
UIDocumentInteractionController
以便从SwiftUI视图使用的可能方法。全模块代码。使用Xcode 11.2 / iOS 13.2进行测试
oewdyzsn2#
最后我做了如下这样的事情,因为我不能让它在
UIViewControllerRepresentable
和上面的答案下可靠地工作。你可能需要编辑/扩展它以适合你的用例。用法:
j2cgzkjk3#
使用
QLPreviewController
我知道这个问题是关于UIDocumentInteractionController的,但是如果你想给出一个
PDF file
(例如),你可以使用**QLPreviewController**。本地文件
显示本地文件:
远程文件
如果需要显示远程文件,请使用see this gist。
预览控件
可表示为
QLPreviewController
的UIView控制器。