在两个丢失值的 ViewController 之间传递 UIImage 数组
Passing UIImage array between two ViewControlllers losing values
我正在内存中的 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()
}
您正在创建 CameraViewController
的新实例。那是不正确的。每次您创建 CameraViewController
的新实例时,它都会是一个全新的引用。
您应该访问 CameraViewController
.
的已经可用/创建的实例
在视图控制器之间执行 segue 或导航时,您可以将数据从一个视图控制器传递到另一个视图控制器。
假设您有 A 和 B 视图控制器,在 A 到 B 之间导航时,您可以这样做:
let b = B() // Instantiate B view controller from storyboard with identifier
b.images = images // Data to pass to the next view controller
如果想正确理解,可以参考这篇文章:
https://www.hackingwithswift.com/example-code/system/how-to-pass-data-between-two-view-controllers
我正在内存中的 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()
}
您正在创建 CameraViewController
的新实例。那是不正确的。每次您创建 CameraViewController
的新实例时,它都会是一个全新的引用。
您应该访问 CameraViewController
.
在视图控制器之间执行 segue 或导航时,您可以将数据从一个视图控制器传递到另一个视图控制器。
假设您有 A 和 B 视图控制器,在 A 到 B 之间导航时,您可以这样做:
let b = B() // Instantiate B view controller from storyboard with identifier
b.images = images // Data to pass to the next view controller
如果想正确理解,可以参考这篇文章:
https://www.hackingwithswift.com/example-code/system/how-to-pass-data-between-two-view-controllers