Использование делегата для обновления UIPageControl - PullRequest
0 голосов
/ 03 мая 2020

У меня есть простой 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 не имеет члена делегата

Есть идеи, что я делаю неправильно? enter image description here

РЕДАКТИРОВАТЬ: Я попытался объявить делегата класса и получил эту ошибку, где PickupViewController является родительским контроллером представления

enter image description here

...