【发布时间】:2020-07-11 03:43:02
【问题描述】:
我在内存中的 2 个 VC 之间传递一组图像。我不知道这是否是一个问题并且不可能做到?当第二个视图控制器引用第一个 UIImages 数组时,我在第二个视图控制器中得到空白图像。
class ViewPDFAfterSnapshotViewController: UIViewController {
@IBOutlet weak var pdfView: PDFView!
@IBOutlet weak var confirmUploadButton: UIButton!
@IBOutlet weak var CancelUploadButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let vc = CameraViewController()
// convert to PDF
let pdfDocument = PDFDocument()
for i in 0 ..< vc.images.count {
let image = vc.images[i]
let pdfPage = PDFPage(image: image)
pdfDocument.insert(pdfPage!, at: i)
}
pdfView.displayMode = .singlePageContinuous
pdfView.autoScales = true
pdfView.displayDirection = .vertical
pdfView.document = pdfDocument
}
编辑 1:好的,从我得到的反馈和链接的文章中我做到了:
func transistionToPDFView(){
let vc = ViewPDFAfterSnapshotViewController()
vc.images = images
navigationController?.pushViewController(vc, animated: true)
view.window?.rootViewController = vc
view.window?.makeKeyAndVisible()
}
【问题讨论】:
-
从另一个视图控制器显示您的代码。
vc是一个新实例。这就是为什么它们的值是空的 -
请告诉您如何在两个视图控制器之间导航。在导航时,您将参考下一个视图控制器。届时您可以简单地传递信息。
-
您应该将图像声明为
ViewPDFAfterSnapshotViewController的实例属性,并在呈现视图控制器之前设置图像属性。 -
@LeoDabus 我这样做了:
@IBAction func cancelPressed(_ sender: Any) { let vc = ViewPDFAfterSnapshotViewController() vc.images = images transistionToPDFView() }但它仍然为空 -
@jstocke2 您需要提供与设置图像相同的控制器。
pdfViewController.images = images
标签: swift uiimageview viewcontroller