Я пытаюсь передать данные из первого виртуального контейнера во второй виртуальный канал. Я пытался использовать делегат, но он никогда не работал (не показывал требуемый ответ), поэтому я тоже попробовал обратный вызов, и теперь он работает, поэтому я вставляю обе строки кода так, любая помощь приветствуется
Делегат:
protocol RatingDelegate: class {
func didLoadRating(ratings : [RatingModel])
}
viewcontroller, с которого будут передаваться данные
ViewController A:
var delegate : RatingDelegate?
func showRatings(ratings: [RatingModel]) {
if delegate != nil {
delegate?.didLoadRating(ratings: ratings)
}
}
где мне должно быть напечатано значение делегата
RatingVC:
extension RatingVC: RatingDelegate {
func didLoadRating(ratings: [RatingModel]) {
log(ratings)
}
}
Версия обратного вызова
Контроллер представления, который получит данные
var ratingsCallBack: (() -> ([RatingModel]))?
контроллер представления, из которого будет передано значение
func showRatings(ratings: [RatingModel]) {
let ratingVC = RatingVC()
ratingVC.ratingsCallBack!() = {[unowned self] in
return ratings
}
}
это как бы выдает ответ, говорящий
Выражение не присваивается: вызов функции возвращает неизменное значение