UIPageViewController取消页面滑动

时间:2014-04-23 17:31:33

标签: objective-c uialertview uipageviewcontroller

我有一个7页的UIPageViewController。在进入下一页之前,用户必须在每个页面中输入所有必填字段。如果用户没有输入必填字段,则应显示警告弹出窗口,如果用户尝试转到下一页,则将其保持在同一页面中。如果用户没有输入必填字段,是否有人知道如何取消页面滑动并将用户保留在同一页面中?

谢谢, 阿南德。

1 个答案:

答案 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)