UIPageViewController 的下一页按钮 iOS 8 - objC

Next Page Button for UIPageViewController iOS 8 - objC

实际上,我正在尝试使用 PageViewController 填充画廊。我成功地在视图中引入了滚动图像,但是,我在页面视图控制器中使用了 下一个和上一个按钮 它不能正常工作我使用了这行代码。

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

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

因为我在 - (IBAction)nextButtonPressed 处使用了 viewControllerAtIndex:+1: (id)sender 我让按钮操作仅在第一次单击按钮操作时起作用。 提前致谢

检查此代码:-

- (void)changePage:(UIPageViewControllerNavigationDirection)direction {
    NSUInteger pageIndex = ((FooViewController *) [_pageViewController.viewControllers objectAtIndex:0]).pageIndex;
    if (direction == UIPageViewControllerNavigationDirectionForward){
        pageIndex++;
    }else {
        pageIndex--;
    }
    YourViewController *viewController = [self  viewControllerAtIndex:pageIndex];
    if (viewController == nil) {
        return;
    }
    [_pageViewController setViewControllers:@[viewController] direction:direction animated:YES completion:nil];
}

// 上一个按钮

- (IBAction)previousButtonPressed:(id)sender {
    [self changePage:UIPageViewControllerNavigationDirectionReverse];
}

// 下一个按钮

- (IBAction)nextButtonPressed:(id)sender {
    [self changePage:UIPageViewControllerNavigationDirectionForward];
}

Chandan 的回答非常有效。 在 swift 3.0

中查看
func changePage(direction:UIPageViewControllerNavigationDirection)
{
    var pageIndex = (pageViewController.viewControllers?[0] as! SliderContentVC).pageIndex
    if(direction == UIPageViewControllerNavigationDirection.forward)
    {
        pageIndex = pageIndex! + 1
    }
    else
    {
        pageIndex = pageIndex! - 1
    }
    let viewController = self.viewControllerAtIndex(index: pageIndex!)
    if(viewController == nil)
    {
        return;
    }
    else
    {
        self.pageViewController.setViewControllers([viewController!], direction: direction, animated: true, completion: nil)
    }
}

//上次点击

@IBAction func btnGoBack_Click(_ sender: Any)
{
    self.changePage(direction: .reverse)
}

//返回点击

@IBAction func btn_GoForward_Click(_ sender: Any)
{
    self.changePage(direction: .forward)
}

//viewControllerAtIndex方法

func viewControllerAtIndex(index : Int) -> UIViewController?
{
    if(index < 0 || index >= MAX_COUNT)
    {
        return nil
    }
    let pageContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "SliderContentVC") as! SliderContentVC
    pageContentViewController.pageIndex = index
    return pageContentViewController
}