Xcode / Swift 4打开pdf文件的静态表格单元格

时间:2019-05-07 19:47:48

标签: ios swift uitableview static cell

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

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

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

在视图控制器之间存在一个名为“ detailSegue”的segue。 “ Transport Detail VC”在其顶部具有一个UIView以及一个“ PDFView类”。 当我从情节提要构建表时,“ Transport Table VC”中没有节或行数据。

import play.api.mvc._
import scala.concurrent._
import play.api.http.HeaderNames._

class NoCache @Inject() (parser: BodyParsers.Default)(implicit ec: ExecutionContext) extends ActionBuilderImpl(parser) {
  override def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = {
    block(request).map { res => res.withHeaders(
      (CACHE_CONTROL -> "no-cache, no-store, must-revalidate"),
      (PRAGMA -> "no-cache"),
      (EXPIRES -> "0")
    )}
  }
}
//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
            }
        } 
    }
}

我不知道从哪里开始。如果我找不到其他方法,我将返回100 segue方法。

理想情况下,我想让每个单元打开自己的pdf文件(在本地存储并相应命名,即ferari.pdf等),并将其显示在运输详细信息VC上。

1 个答案:

答案 0 :(得分:0)

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

请找到代码的保管箱链接

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

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