[英]how to use pass between 3 views (pass to the Root view ) using delegate / protocol
我构建了一个拍照的应用程序,用户可以查看这张照片。 之后他可以在 uicollection 视图中看到这张图片
-(1个视图-PicEditorViewController)用户拍照并将数据传递给下一个视图使用
let previewVC = storyboard?.instantiateViewController(withIdentifier: "PreviewViewController") as! PreviewViewController
previewVC.delegate = self // using the delegate
-(2 视图 - PreviewViewController)用户查看图片并按下按钮将日期传递给下一个视图(根视图)
self.delegate?.previewVC1(preview: true, img : img.image)
self.navigationController?.popToRootViewController(animated: true)
在同一个视图中,我初始化了一个协议
protocol PreviewViewControllerDelegate
{
func previewVC1(preview : Bool , img : img.image)
}
用户在 uicollection 视图中看到图片
extension SavePicsViewController : PreviewViewControllerDelegate
{
func previewVC1(preview: Bool, img : img.image)
{
savedPic.appen(img) // the array fill the collection
self.collectionView.reloadData()
self.collectionView.delegate = self
}
}
但问题是我无法在扩展中调用 previewVC1 功能
& 保存图片为 0
我该如何解决这个问题
SavePicsViewController 需要具有属性weak var delegate: PreviewViewControllerDelegate
并且需要在实例化它时设置它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.