Swift PDFKit如何从资源中选择要查看的PDF(PDF选择器)

vatpfxk5  于 2023-02-28  发布在  Swift
关注(0)|答案(1)|浏览(115)

我正在使用下面的代码,这是显示在我的资源PDF格式。但是,我正试图找出如何从列表中选择一个PDF格式的名称,这将取代“lipsum”资源。目前,我无法通过任何字符串变量在Lipsum使用导航链接的地方。任何帮助将不胜感激。

import SwiftUI
import UIKit
import PDFKit

struct DocView: View {
    let pdfDoc: PDFDocument

 init() {
        let url = Bundle.main.url(forResource:"Lipsum", withExtension: "pdf")!
        pdfDoc = PDFDocument(url: url)!
    }
    
    var body: some View {
        PDFKitView(showing: pdfDoc)
    }
}

struct DocView_Preview: PreviewProvider {
    static var previews: some View {
        DocView()
    }
}

struct PDFKitView: UIViewRepresentable {
    
    let pdfDocument: PDFDocument
    
    init(showing pdfDoc: PDFDocument) {
        self.pdfDocument = pdfDoc
    }
    
    //you could also have inits that take a URL or Data
    
    func makeUIView(context: Context) -> PDFView {
        let pdfView = PDFView()
        pdfView.document = pdfDocument
        pdfView.autoScales = true
        return pdfView
    }
    
    func updateUIView(_ pdfView: PDFView, context: Context) {
        pdfView.document = pdfDocument
    }
}

我曾尝试从另一个包含列表的视图的NavigationLink传递变量,但是,当我这样做时,它说pdfview不接受它。

o0lyfsai

o0lyfsai1#

可以像这样向初始化式添加参数

struct DocView: View {
let pdfDoc: PDFDocument


    init(resourceName: String) {
        let url = Bundle.main.url(forResource:resourceName, withExtension: "pdf")!
        pdfDoc = PDFDocument(url: url)!
    }

    var body: some View {
       PDFKitView(showing: pdfDoc)
    }
}

你从另一个Angular 看它

DocView(resourceName: "pdfName")

相关问题