Ios UIPageViewController页面指示器不同步

Ios UIPageViewController页面指示器不同步,ios,uipageviewcontroller,uipagecontrol,Ios,Uipageviewcontroller,Uipagecontrol,使用此UIPageViewController脚本快速来回滑动时,我的UIPageViewController的页面指示器不同步: target.dragFromToForDuration({x:10, y:100}, {x:300, y:114}, 0.5); target.dragFromToForDuration({x:300, y:100}, {x:10, y:114}, 0.5); 一遍又一遍地重复 或者,在页面控制器上点击一个方向并按此问题中的另一个方向时: 解决方案是用UIPa

使用此UIPageViewController脚本快速来回滑动时,我的UIPageViewController的页面指示器不同步:

target.dragFromToForDuration({x:10, y:100}, {x:300, y:114}, 0.5);
target.dragFromToForDuration({x:300, y:100}, {x:10, y:114}, 0.5);
一遍又一遍地重复

或者,在页面控制器上点击一个方向并按此问题中的另一个方向时:

解决方案是用UIPageControl替换页面指示器。该解决方案在这里也被接受:

返回UIViewController的代码(UIViewController包含具有不同数据源的表):

-(MyViewController*)viewControllerAtIndex:(NSInteger)索引
{
MyViewController*pageContentViewController=[[MyViewController alloc]initWithNibName:@“MyView”捆绑包:nil];
id myDataSource=[self.myDataSources objectAtIndex:index];
[pageContentViewController设置myDataSource:myDataSource];
返回页面内容视图控制器;
}
#pragma标记-页视图控制器数据源
-(UIViewController*)页面视图控制器:(UIPageViewController*)页面视图控制器视图控制器预览控制器:(UIViewController*)视图控制器
{
id myDataSource=[((MyViewController*)viewController)myDataSource];
NSInteger索引=[self.myDataSources索引对象:myDataSource];
if(index==NSNotFound | | index-1<0){
返回零;
}否则{
MyViewController*pageContentViewController=[自视图控制器索引:索引-1];
返回页面内容视图控制器;
}
}
-(UIViewController*)pageViewController:(UIPageViewController*)pageViewController viewControllerAfterViewController:(UIViewController*)viewController
{
MyDataSource*MyDataSource=[((MyViewController*)viewController)MyDataSource];
NSInteger索引=[self.myDataSources索引对象:myDataSource];
if(index==NSNotFound | | index+1>=[self.myDataSources count]){
返回零;
}否则{
MyViewController*pageContentViewController=[self-viewControllerAtIndex:index+1];
返回页面内容视图控制器;
}
返回零;
}
是什么导致UIPageViewController和页面指示器不同步?

请检查我的答案:
- (MyViewController*) viewControllerAtIndex:(NSUInteger)index
{
    MyViewController *pageContentViewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

    id myDataSource = [self.myDataSources objectAtIndex:index];
    [pageContentViewController setMyDataSource:myDataSource];

    return pageContentViewController;
}

#pragma mark - Page View Controller Data Source

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    id myDataSource = [((MyViewController*) viewController) myDataSource];
    NSInteger index = [self.myDataSources indexOfObject:myDataSource];

    if (index == NSNotFound || index - 1 < 0) {
        return nil;
    } else {
        MyViewController *pageContentViewController = [self viewControllerAtIndex:index - 1];
        return pageContentViewController;
    }
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    MyDataSource *myDataSource = [((MyViewController*) viewController) myDataSource];
    NSInteger index = [self.myDataSources indexOfObject:myDataSource];

    if (index == NSNotFound || index + 1 >= [self.myDataSources count]) {
        return nil;
    } else {
        MyViewController *pageContentViewController = [self viewControllerAtIndex:index + 1];
        return pageContentViewController;
    }

    return nil;
}