viewControllerAfterViewController:不使用UIPageViewController调用

时间:2013-12-12 01:09:14

标签: ios objective-c uipageviewcontroller

我遇到了UIPageViewController的一个非常奇怪的行为。

我正在使用UIPageViewController来显示一组ViewControllers,所以我符合UIPageViewControllerDataSource协议,并实现了以下方法:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(NHBufferRoomViewController *)viewController
{
    NSLog(@"Got here!!");
    NSInteger newIndex = [_imageManager currentImageIdx] + 1;
    if (newIndex >= [_imageManager count]) return nil;

    NSLog(@"%d", newIndex);
    NHBufferRoomViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"BufferRoom"];
    [controller updateImageAtIndex:newIndex];
    [[NSNotificationCenter defaultCenter] postNotificationName:kCurrentImageIndex object:[NSNumber numberWithInteger:newIndex]];
    return controller;
}

但是当我滑动页面视图控制器时,有时候,视图控制器确实移动到了下一页,但是在我再次滑动之前,NSLog(@"Got here!!");没有被调用,这很奇怪。据我所知,页面视图控制器应该在需要显示新页面时调用此方法,对吧?但为什么不调用这个方法?

我正在设置过渡类型以便滚动。提前谢谢!

1 个答案:

答案 0 :(得分:0)

是的,你是对的。 问题是苹果的问题。

解决方案:不要去UIPageViewController,而是通过UIScrollView用分页实现它