繁体   English   中英

如何使用委托/协议在 3 个视图之间传递(传递到根视图)

[英]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)
    
}
  • (3 查看SavePicsViewController) Root 视图

用户在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM