Изменить UIControllerPage с помощью UIButton Swift - PullRequest
0 голосов
/ 18 октября 2019

У меня есть UIPageViewController, встроенный в мое представление контейнера. Я хотел бы добавить цель к своему UIButton, когда это будет либо первая, либо вторая страница моего UIPageViewController. Мне удалось изменить заголовок UIButton и добавить цель к кнопке, чтобы закрыть вид и вернуться к домашнему контроллеру. Однако у меня возникают проблемы при добавлении цели в UIButton для первых двух страниц, чтобы перейти к следующему представлению. Всего в UIPageViewController есть 3 UIViewController.

    class InfoPageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {

var pages = [UIViewController]()
let pageControl = UIPageControl()
 var nextButton: UIButton = {
    var button = UIButton()
    button.layer.cornerRadius = 7
    button.backgroundColor = UIColor.rgb(red: 107, green: 206, blue: 238)
   button.setTitle("Next", for: .normal)

    return button

}()
 func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {

    if let viewControllerIndex = self.pages.index(of: viewController) {
        if viewControllerIndex == 0 {
            // wrap to last page in array
            return self.pages.last
        } else {
            // go to previous page in array
            return self.pages[viewControllerIndex - 1]
        }
    }
    return nil
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {

    if let viewControllerIndex = self.pages.index(of: viewController) {
        if viewControllerIndex < self.pages.count - 1 {
            // go to next page in array
            return self.pages[viewControllerIndex + 1]
        } else {
            // wrap to first page in array
            return self.pages.first
        }
    }
    return nil
}
   @objc func dismissView(){

    let homeVC = HomeScreen()
    present(homeVC, animated: false, completion: nil)
}
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
    if let viewControllers = pageViewController.viewControllers {
        if let viewControllerIndex = self.pages.index(of: viewControllers[0]) {
            if viewControllerIndex == 2{
                self.nextButton.setTitle("Home", for: .normal)
                self.nextButton.addTarget(self, action: #selector(dismissView), for: .touchUpInside)
                print("view three")
                self.pageControl.currentPage = viewControllerIndex

            }else{
            self.nextButton.setTitle("Next", for: .normal)

            self.pageControl.currentPage = viewControllerIndex
        }
        }
    }
}
}
...