Ios UIPageViewController页面指示器不同步
使用此UIPageViewController脚本快速来回滑动时,我的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
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;
}