2014-10-08 88 views
0

我跟着http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/創建一個PageViewController。UIPageViewController的下一頁按鈕iOS

本教程包含: (代碼重啓按鈕)

- (IBAction)restartButton:(id)sender { 
PageContentViewController *startingViewController = [self viewControllerAtIndex:0]; 
NSArray *viewControllers = @[startingViewController]; 
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionReverse animated:NO completion:nil]; 
} 

當我試圖爲下一頁按鈕這樣的:

- (IBAction)nextPageButton:(id)sender { 
PageContentViewController *startingViewController = [self viewControllerAtIndex:+1]; 
NSArray *viewControllers = @[startingViewController]; 
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionReverse animated:NO completion:nil]; 
} 

,但失敗了,接下來該怎麼進行頁面動作與UIButton響應與PageControl直到最後一頁。

+0

http://stackoverflow.com/questions/7208871/is-it-possible-to-turn- page-programmatically-in-uipageviewcontroller/39190174?noredirect = 1#comment65723601_39190174最新回答可以幫助 – 2016-08-29 17:03:56

回答

0

這是因爲您使用+1不會工作,相反,試試這個:

//get current index of current page 
DataViewController *theCurrentViewController = [self.pageViewController.viewControllers objectAtIndex:0]; 
NSUInteger retreivedIndex = [self.modelController indexOfViewController:theCurrentViewController]; 

//check that current page isn't first page 
if (retreivedIndex < 5){ 

    //get the page to go to 
    DataViewController *targetPageViewController = [self.modelController viewControllerAtIndex:(retreivedIndex + 1) storyboard:self.storyboard]; 

    //put it(or them if in landscape view) in an array 
    NSArray *theViewControllers = nil;  
    theViewControllers = [NSArray arrayWithObjects:targetPageViewController, nil]; 

    //add page view 
    [self.pageViewController setViewControllers:theViewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; 

} 
+1

Wats that modelController是什麼意思? – 2014-10-08 09:46:50

+0

它不適合我 – 2014-10-08 09:47:15

0
PageNumberToJump=2 


-(void)buyAction 
{ 

isFromBuy = YES; 

    APPChildViewController *initialViewController = [self viewControllerAtIndex:PageNumberToJump]; 
    viewControllers = [NSArray arrayWithObject:initialViewController]; 
    [self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 
} 

-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController 
{ 

    if (isFromBuy) 
    { 
     isFromBuy = NO; 
     return PageNumberToJump; 
    } 
    return 0; 

}