0

我想實現基本的UIPageviewController示例。但是,當我在右/左方向快速刷卡時,數據源方法viewcontrollerAfterViewController被調用兩次。它僅在ios 7中發生。任何人都知道爲什麼發生這種情況UIPAGEVIEWCONTROLLER數據源方法被稱爲兩次快速刷卡

+0

我使用的代碼http://www.appcoda.com/uipageviewcontroller-tutorial-intro/。 – Sulabh

回答

1

UIPageViewController使用下面這些方法獲取後端和前端ViewController。

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController; 
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController; 

儘管它很奇怪,但是它是一個已知的問題。每次它調用Before和After方法來獲得VC。它沒有下一個VC,則返回nil,如果沒有以前的VC,則datasourceDelegate返回nil,否則返回VC的索引。

UIPageViewControllerDelegate,有一個名爲函數:

- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers; 

看這可能有助於從pendingViewControllers陣列獲取當前或者下一首/上視圖 - 控制。

希望這有助於.. :)