У меня возникла проблема с UIPageViewController. В какой-то момент в его Координаторе ссылки на UIViewControllers становятся недействительными. Это приводит к потере всех страниц UIPageViewController, за исключением первой, после закрытия модального представления.
По завершении базового учебного пособия по SwiftUI Взаимодействие с UIKit представление модального представления, реализованное при нажатии по элементу. Существует GitHub репо .
Я обнаружил, что после того, как modalview отклонил координатор в делегатах pageViewController, он ищет первоначально созданные UIViewController, когда они воссоздаются несколько раз. Поэтому, когда я пытаюсь прокрутить страницы, делегаты не могут найти фактические контроллеры UIViewControllers
func pageViewController(
_ pageViewController: UIPageViewController,
viewControllerAfter viewController: UIViewController) -> UIViewController?
{
guard let index = __parent.controllers.firstIndex(of: viewController)__ else {
return nil
}
}
. Как указывается в официальной документации, синхронизация координатора и UIPageViewController должна быть с ответственностью UIViewControllerRepresentable
/// Updates the presented `UIViewController` (and coordinator) to the latest
/// configuration.
func updateUIViewController(_ uiViewController: Self.UIViewControllerType, context: Self.Context)
Я что-то пропустил или это ошибка в UIViewControllerRepresentable? Как я могу использовать модальное представление поверх UIPageViewController, не теряя возможности прокручивать страницы?