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