Я реализовал библиотеку XLPagerTabStrip в моем приложении. Теперь в моем контейнере VC есть календарь, по которому при нажатии я вызываю функцию делегата, которая принимает значение выбранной даты. У меня есть 3 ChildVC имя AcceptedBookingVC, PendingBookingVC и HistoryBookingVC. Теперь я хочу передать selectedDate VC, который открыт в настоящее время. Как я могу это передать? Я использовал делегат, но он не передает мои данные. Это мой код,
protocol BookingContainerDelegate {
func selectedDate(selectedDate:String)
}
func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
let selected = calendar.selectedDate
let dateFormatter1: DateFormatter = DateFormatter()
dateFormatter1.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"
dateFormatter1.dateFormat = "yyyy-MM-dd"
print("\(dateFormatter1.string(from: selected!))")
selectDate = dateFormatter1.string(from: selected!)
dateDelegate?.selectedDate(selectedDate: dateFormatter1.string(from: selected!))
self.popViewTopConstraint.constant = -300
popUpShowing = false
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
Это код для XLPager, когда я вызываю дочерние виртуальные каналы в Container VC,
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
let child1 = UIStoryboard().loadAcceptedBookingVC()
child1.dateDelegate = self
child1.selectDate = selectDate
child1.itemInfo = "Accepted"
let child2 = UIStoryboard().loadPendingBookingVC()
child2.selectDate = selectDate
child2.itemInfo = "Pending"
let child3 = UIStoryboard().loadHistoryBookingVC()
child3.selectDate = selectDate
child3.itemInfo = " History"
return [child1,child2,child3]
}
Вот дочерний виртуальный канал, я звоню своему делегату, но у него нет значения,
extension AcceptedBookingVC : BookingContainerDelegate
{
func selectedDate (selectedDate: String) {
печать (SelectedDate)
date = selectedDate
}
} * +1010 *
Мой экран выглядит так, когда я выбираю дату,