Я пытаюсь создать приложение, которое использует три контейнера для отображения разного контента, но у меня возникают проблемы со связью между контейнерами. Мне удалось использовать переход для отправки некоторой информации по нажатию кнопки в одном контейнере в другой контейнер, но часть этой информации также должна быть передана в третий контейнер. Для этого я хотел использовать делегат, но я не могу ссылаться на правильный ViewController на переменную делегата.
Итак, что я хочу, выглядит следующим образом:
- Нажатие CollectionViewCell вызывает переход к TableVC
- TableVC получает информацию и обновляет таблицу
- TableVC запускает функцию делегата в третьем VC
- Третий венчурный капитал получает некоторую информацию и обновляет представление
В приведенном выше мне удалось заставить работать 1 и 2, но застрял на 3.
Я сделал свой протокол следующим образом:
protocol PurchaseDelegate {
func addToTotalAmount(product : Product)
}
В TableVC я объявил var delegate : PurchaseDelegate? = nil
и в IBAction, запущенном из перехода: delegate?.addToTotalAmount(product)
В третьем VC я реализовал делегат следующим образом:
class thirdVC:UIViewController,PurchaseDelegate {
func addToTotalAmount(product : Product) {
println("Adding....")
}
}
Все три контейнера находятся внутри основного VC, который выполняет некоторые начальные действия в приложении.
Моя проблема в том, что я не знаю, как получить ссылку из третьего VC на мою переменную делегата в моем tableVC.
Заранее спасибо.