Swift delegado entre dos VC sin segue
Tengo 3 clases:
ChatLogControollerGetImageFromLibraty (clase NSObject) ImagePreviewViewControllerQuiero presionar un clip del primer VC, luego abrir la biblioteca de medios para elegir una imagen. Luego, la imagen seleccionada se pasa al tercer VC como previewController. Luego, si selecciono 'hecho', quiero pasarlo al primer VC.
1st VC
class ChatLogControoller: UICollectionViewController, UICollectionViewDelegateFlowLayout, NSFetchedResultsControllerDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate, DataSentDelegate {
func recievePhoto(data: UIImage) {
imageFromView = data
print("-------\(imageFromView = data)")
}
override func viewDidLoad() {
super.viewDidLoad()
let vc = ImagePreviewController()
self.vc.delegate = self
}
¡La segunda clase es solo un selector de imagen, por lo que paso la imagen a 3rd VC y esta imagen aparece en imageView de 3rd VC correctament
my 3rd VC
protocol DataSentDelegate {
func recievePhoto(data: UIImage)
}
class PreviewController: UIViewController, UIScrollViewDelegate {
var delegate : DataSentDelegate? = nil
var aImageView: UIImageView!
var aImage: UIImage!
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action:, #selector(actionSend))
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(actionBack))
}
@objc func actionBack() {
dismiss(animated: false, completion: nil)
}
@objc func actionSend() {
let data = aImageView.image
delegate?.recievePhoto(data: data!)
dismiss(animated: true, completion: nil)
}