我有一个7页的UIPageViewController。在进入下一页之前,用户必须在每个页面中输入所有必填字段。如果用户没有输入必填字段,则应显示警告弹出窗口,如果用户尝试转到下一页,则将其保持在同一页面中。如果用户没有输入必填字段,是否有人知道如何取消页面滑动并将用户保留在同一页面中?
谢谢, 阿南德。
答案 0 :(得分:2)
如果你有一个pageviewcontroller的数据源,你可以为该方法返回nil:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
您可能从start开始设置所有viewcontrollers,但要执行此操作,您需要设置初始viewcontroller,并从数据源方法提供下一个和上一个viewcontrollers。
它不会禁用滚动视图中的滚动,这意味着用户可以滚动并弹出'反对最后一页。
编辑: 请注意,UIPageViewController会缓存来自它的数据源的答案;当您返回给定索引的答案时,它将不会再次请求它,直到滚动到达足够远或您手动设置viewControllers。
要使您的刷新工作,作为解决方法,您可以致电:
pageViewcontroller setViewControllers:[pageViewcontroller viewControllers] direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
使其删除缓存并再次从您的数据源请求控制器。 (感谢Douglas Hill)