我了解在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上。
答案 0 :(得分:0)
在下面的示例中,我得到表中文件的名称并选择了方法,并通过准备segue方法将其传递给TransportViewController
请找到代码的保管箱链接
https://www.dropbox.com/s/2697rzajiu2vmm0/PDFSample.zip?dl=0
注意:仅对于丰田,我在项目中添加了PDF文件