У меня проблемы с использованием протоколов для отправки данных обратно на предыдущий контроллер.Я изучил ТАК вопросы и руководства, но по какой-то причине мои данные не возвращаются обратно.
Во втором классе я создаю данные, которые позже отправляются обратно в первый класс:
protocol ImageEditorDelegate {
func sendImage(image: UIImage, id: String)
}
class PhotoEditorViewController: UIViewController {
var delegate: ImageEditorDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func didPressSave(_ sender: UIButton) {
delegate?.sendImage(image: finalImage, id: imageThatWasSelected)
self.dismiss(animated: true, completion: nil)
}
}
И в моем приемном классе у меня есть:
class NewProductViewController: UIViewController, ImageEditorDelegate {
var imageEditor: PhotoEditorViewController?
override func viewDidLoad() {
super.viewDidLoad()
imageEditor?.delegate = self
}
func sendImage(image: UIImage, id: String) {
print("Receiving images", image, id)
switch id {
case "1":
selectedImages[1] = image
productImage1.image = image
case "2":
selectedImages[2] = image
productImage2.image = image
case "3":
selectedImages[3] = image
productImage3.image = image
default:
break
}
}
}
Но ничего не происходит, этот функционал никогда не вызывается.Я думаю, что мой делегат ноль или около того, но как я могу решить эту проблему?Кроме того, я использую VIPER в качестве архитектуры со слегка настроенными сегментами, это может быть проблемой?Я пробовал простые переходы, но у меня была та же проблема.
Я понимаю, что это довольно простой вопрос, но я не мог понять, что я делаю неправильно, после того, как я прочитал статьи о протоколах.
Спасибо за помощь!