Я пытаюсь отправить изображение из моей коллекцииViewCell imageView в изображениеView в другом VC через делегирование и протокол. Я не могу понять, почему это работает неправильно?Протокол и делегат не работают .. что я сделал не так?
Передающий ВК: TrainersViewController
ПОЛУЧАТЬ ВК: BioViewController
Вот мой протокол:
protocol TrainersViewControllerDelegate: class {
func trainersViewController(controller: TrainersViewController, didFinishSendingImage trainer:TrainerArray)
}
class TrainersViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, AddNewTrainerViewControllerDelegate {
weak var delegate: TrainersViewControllerDelegate?
}
Вот мой Принимающий класс:
class BioViewController: UIViewController, TrainersViewControllerDelegate {
@IBAction func backToTrainersButton(sender: AnyObject) {
dismissViewControllerAnimated(true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBOutlet weak var bioImage: UIImageView!
func trainersViewController(controller: TrainersViewController, didFinishSendingImage trainer: TrainerArray) {
trainer.trainerImage! = bioImage as! UIImage
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "bioSegue" {
let navigationController = segue.destinationViewController as! UINavigationController
let controller = navigationController.topViewController as! TrainersViewController
controller.delegate = self
}
}
}
Наконец вот кнопки в коллекцииViewCell, которую я вызываю, чтобы это произошло:
@IBAction func bioSegueButton(sender: AnyObject) {
let index = sender.tag
let trainer = trainers[index]
print(trainer.name)
delegate?.trainersViewController(self, didFinishSendingImage: trainer)
performSegueWithIdentifier("bioSegue", sender: self)
}
Почему это не отправляет изображение в изображение другого другого VC?
Вы делаете 'trainer.trainerImage! = bioImage как! UIImage', который будет разбиваться, потому что 'bioImage' не является' UIImage' его 'UIImageView'. Я уверен, что вы хотите, чтобы это было 'bioImage.image = trainer.trainerImage!' – dan
Отлично! Я включил этот код. Он не выдавал мне никаких предупреждений или ошибок, а это значит, что это работает. Но когда я нажимаю кнопку, чтобы перейти к экрану Bio, он не отображает изображения. –
Может быть, это как-то связано с тем, где я вызываю функцию протокола? я не могу понять эту часть. –