我遇到了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!!");
没有被调用,这很奇怪。据我所知,页面视图控制器应该在需要显示新页面时调用此方法,对吧?但为什么不调用这个方法?
我正在设置过渡类型以便滚动。提前谢谢!
答案 0 :(得分:0)
是的,你是对的。 问题是苹果的问题。
解决方案:不要去UIPageViewController,而是通过UIScrollView用分页实现它