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

Я использую стороннюю библиотеку XLPagerTabStrip.У меня есть Контейнер VC и Три ребенка VC.Теперь у меня есть кнопка, которая отображает календарь на кране в моем контейнере VC.Я хочу, чтобы, когда я нажимал на любую дату, она передавала эту дату моему Child VC, и там я получал API на основе предоставленной даты.Я сделал протокол в моем Контейнерном VC и передал дату его функции и Call, который делегирует в моем Child VC в расширении, но он не перехватывает моего делегата.Вот код для моего класса Container VC,

protocol BookingContainerDelegate {

func selectedDate(selectedDate:String)
}

Здесь я передаю selectedDate функции делегирования в MyCntainer VC,

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!))")

    dateDelegate?.selectedDate(selectedDate: dateFormatter1.string(from: selected!))

    self.popViewTopConstraint.constant = -300
    popUpShowing = false

    UIView.animate(withDuration: 0.3) {
        self.view.layoutIfNeeded()
    }
}

Теперь в моем Child VC этокак я вызываю делегат и передаю данные из делегата в мою переменную,

extension AcceptedBookingVC : BookingContainerDelegate

{

func selectedDate(selectedDate: String) {

    date = selectedDate
}
}

Но мой делегат не перехватывает, когда представление загружено.Как я могу передать эту дату в моем Child VC в XLPagerTabStrip.Вот как я называю Child VC в Container VC,

 override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
    let child1 = UIStoryboard().loadAcceptedBookingVC()
    child1.itemInfo = "Accepted"

    let child2 = UIStoryboard().loadPendingBookingVC()
    child2.itemInfo = "Pending"

    let child3 = UIStoryboard().loadHistoryBookingVC()
    child3.itemInfo = " History"

    return [child1,child2,child3]
}

1 Ответ

0 голосов
/ 04 апреля 2019

в вашем родительском VC определяет ваш текущий активный дочерний VC и назначает делегата дочернему VC

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