Объект пользовательского интерфейса раскадровки Swift pagecontroller соединяется с UIPageviewcontroller - PullRequest
0 голосов
/ 06 сентября 2018

Я сделал pageviewcontroller в представлении контейнера. Я могу показать управление страницей с помощью программы, но мой просмотр контейнера я сделал с помощью раскадровки, поэтому я не знаю, как показать контроллер страницы внутри центра контейнера. Итак, я использовал перетаскивание объекта пользовательского интерфейса контроллера раскадровки теперь, как соединиться с методами контроллера представления страницы и как заставить точку перемещаться, используя счетчик массива изображения viewviewcontroller.

func configurePageControl() {
        // The total number of pages that are available is based on how many available colors we have.
        //pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50))
        pageControl = UIPageControl(frame: CGRect(x: self.containerview.frame.size.width / 2, y: self.containerview.frame.size.height - 50,width: UIScreen.main.bounds.width,height: 50))

        self.pageControl.numberOfPages = pageTitles.count
        self.pageControl.currentPage = 0
        self.pageControl.tintColor = UIColor.black
        self.pageControl.pageIndicatorTintColor = UIColor.white
        self.pageControl.currentPageIndicatorTintColor = UIColor.black
        //self.containerview.addSubview(pageControl)
    }

    // MARK: Delegate functions
    func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
        let pageContentViewController = pageViewController.viewControllers![0]
        //self.pageControl.currentPage = pageTitles.index(of: pageContentViewController)!
    }

1 Ответ

0 голосов
/ 06 сентября 2018
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {

if let viewController = pageViewController.viewControllers?[0] {
    guard let index = arrayVCs.index(of: viewController) else {
        return
    }
    //you can find index here..
    self.pageControl.currentPage = index
}
}

Обновление

    func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)
{
    if (!completed) {
        self.pageControl.currentPage = pageViewController.viewControllers!.first!.view.tag //

    }
}

Установка тегов для представления viewcontrollers.

...