首页 > 解决方案 > Xcode/Swift 4 打开 pdf 文件的静态表格单元格

问题描述

我理解在 VC 之间传递数据的概念。我想知道如何确保应该引用特定行来打开特定文件,以及我对 PDFKit 的使用是否正确。

我很难弄清楚如何管理表格单元格选择以在新的视图控制器中打开 pdf 文件,而我的故事板中没有数百个 segue。这是我的故事板的图片:(https://i.ibb.co/jL7nvhv/Screen-Shot-2019-05-07-at-2-41-42-PM.png

我以前曾使用从单元格中拖放 segues 来查看控制器,但这很耗时,而且似乎会减慢应用程序的速度。在我提供的示例中,我希望让选定的单元格打开一个更详细地描述该单元格的 pdf 文件。

视图控制器之间有一个叫做“detailSegue”的segue。“Transport Detail VC”顶部有一个 UIView 和一个“PDFView 类”。当我从情节提要构建表格时,“传输表 VC”中没有部分或行数据。

//Transport VC (where i want PDF's to display):
import UIKit
import PDFKit

class TransportViewController: UIViewController {

    @IBOutlet weak var pdfView: PDFView!
    override func viewDidLoad() {
        super.viewDidLoad()

        if let path = Bundle.main.path(forResource: "", ofType: "pdf"){
            if let pdfDocument = PDFDocument(url:        URL(fileURLWithPath:path)) {
                pdfView.displayMode = .singlePageContinuous
                pdfView.autoScales = true
                pdfView.displayDirection = .vertical
                pdfView.document = pdfDocument
            }
        } 
    }
}
//Transport Table VC

import UIKit

class TableViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

我不知道从哪里开始。如果我没有找到替代方案,我将回到 100 segue 方法。

理想情况下,我希望每个单元格打开自己的 pdf 文件(存储在本地并相应命名,即 ferari.pdf 等...)并将其显示在 Transport detail VC 上。

标签: iosswiftuitableviewstaticcell

解决方案


在下面的示例中,我得到了表中文件的名称确实选择方法,并通过准备 segue 方法将其传递给 TransportViewController

请找到代码的保管箱链接

https://www.dropbox.com/s/2697rzajiu2vmm0/PDFSample.zip?dl=0

注意:仅适用于丰田,我在项目中添加了 PDF 文件


推荐阅读