如何处理 UIPageViewController 中的向后滚动?
Posted
技术标签:
【中文标题】如何处理 UIPageViewController 中的向后滚动?【英文标题】:How to handle backward scrolling in UIPageViewController? 【发布时间】:2015-08-15 20:53:12 【问题描述】:我使用了具有 5 个视图控制器的 UIPageViewController 进行滚动。现在就我而言,我只希望用户前进而不是后退。 意味着如果我在第一个视图控制器上并且我在屏幕上滑动,我将被导航到第二个视图控制器。现在我不能回到第一个视图控制器。
在此附上代码。
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
return nil;
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
if ([viewController isKindOfClass:[MyViewController1 class]])
return [self viewControllerAtIndex:1];
else if ([viewController isKindOfClass:[MyViewController2 class]])
return [self viewControllerAtIndex:2];
else if ([viewController isKindOfClass:[MyViewController3 class]])
return [self viewControllerAtIndex:3];
else if ([viewController isKindOfClass:[MyViewController4 class]])
return [self viewControllerAtIndex:4];
else
return nil;
有什么想法???
【问题讨论】:
***.com/questions/14426728/… 没有成功。还有其他想法或链接吗? 如果完成 == YES - (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed,则删除此方法中的前一个视图控制器 【参考方案1】:你可以解决这个问题,在 didFinishAnimating
委托方法设置 currentViewController 没有动画
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
if (completed)
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^
[weakSelf.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
);
有关此问题的更多详细信息,请访问here
【讨论】:
它使应用程序崩溃。以上是关于如何处理 UIPageViewController 中的向后滚动?的主要内容,如果未能解决你的问题,请参考以下文章
嵌入 UINavigationController 时如何处理 UIView 区域减少的问题
如何处理 MaxUploadSizeExceededException