UIPageViewController iOS的下一页按钮

时间:2014-10-08 08:34:51

标签: ios xcode uibutton uipageviewcontroller uipagecontrol

我按照 http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/ 创建了一个PageViewController。

本教程包含: (重新启动按钮的代码)

- (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];
}

但它失败了,如何使用PageControl响应直到最后一页的UIButton执行下一页操作。

2 个答案:

答案 0 :(得分: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 :(得分: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;

}