У меня есть простой UIPageViewController со всем, что сделано программно. Контроллер просмотра страниц работает. Однако я не могу обновить элемент управления страницей, который находится в главном / родительском контроллере представления.
Вот мой контроллер просмотра страниц:
protocol PageControlUpdate {
func updatePage(current index : Int)
}
class IntroPageViewC: UIPageViewController {
var updatePageDelegate : PageControlUpdate?
// other delegate methods
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
if completed {
updatePageDelegate?.updatePage(current: currentIndex)
}
}
А затем в контроллере основного представления:
var introPageControl = UIPageControl()
override func viewDidLoad() {
introPageControl.delegate = self
introPageControl.tintColor = .systemRed
introPageControl.pageIndicatorTintColor = UIColor.black
introPageControl.currentPageIndicatorTintColor = UIColor.green
allViews.append(introPageControl)
}
func updatePage(current index: Int) {
introPageControl.currentPage = index // this is the UI page control
}
Я не получаю значение индекса в контроллере основного вида. Я попытался установить: introPageControl.delegate = self, но затем я получаю сообщение об ошибке, говоря, что introPageControl не имеет члена делегата
Есть идеи, что я делаю неправильно?
РЕДАКТИРОВАТЬ: Я попытался объявить делегата класса и получил эту ошибку, где PickupViewController является родительским контроллером представления