2017-05-17 14 views
0

기본값 UIPageControl을 사용 중입니다. UIPageViewController은 프로그래밍 방식으로 생성됩니다. dataSourcedelegate 메서드도 올바르게 구성됩니다.iOS UIPageControl 왼쪽 및 오른쪽을 누를 때 동작이 변경됨

iOS 홈 페이지와 동일한 동작을 구현하려고합니다.

텝핑 권한은 다음 페이지로 이동해야합니다. 왼쪽으로 탭하면 이전 페이지로 이동해야합니다.

이러한 동작은 기본값입니다. 모든 것이 잘 작동합니다 마지막 페이지에서 오른쪽으로 탭하면 첫 번째 페이지로 이동합니다. 즉 무한 루프. 첫 번째 페이지와 왼쪽 탭에 대해 동일하게, 마지막 페이지로 이동합니다.

나는 스 와이프 제스처를 위해 viewControllerBeforeviewControllerAfter 방법에서 무한 루프를 방지했습니다.

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

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

조사 결과 : 왼쪽에 탭하면 오른쪽에 탭

  • 이, 마지막 페이지에 첫 페이지에, viewControllerBefore
  • 를 호출은
viewControllerAfter를 호출

어쨌든이 사건을 처리 할 수 ​​있습니까? iOS 홈 화면에서 예상되는 동작을 봅니다.

답변

0

페이지의 색인이 0 또는 n - 1 일 때 위의 방법으로 nil을 반환하십시오. 여기서 n은 총 페이지 수입니다.

예 :

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

    // Check if index is zero, then return nil 
} 

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { 
     // Check if index is equal to total page count, then return nil 
}