Передача данных в дочерний VC, когда VC загружен в XLPagerTabStrip - PullRequest
0 голосов
/ 29 апреля 2019

Я реализовал библиотеку 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 *

Мой экран выглядит так, когда я выбираю дату, enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...