Kli*_*akM 5 ios uipageviewcontroller ios7
我正在尝试UIPageViewController通过每一步的验证来实现.我的代码在没有验证的情况下工作正常,所以带页面的所有内容似乎都是正确的.这是我的代码:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
int index = [(MyViewController *) viewController index];
index--;
return [_viewModel viewControllerAtIndex:index];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
BOOL isDataValid = [(MyViewController *) viewController validateData];
if (isDataValid) {
int index = [(MyViewController *) viewController index];
index++;
return [_viewModel viewControllerAtIndex:index];
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当显示步骤1时,viewControllerAfterViewController调用准备步骤2,但因为步骤2无法有效(用户没有机会输入数据)所以它返回nil.每次用户尝试滑动到下一个屏幕时我都会UIPageViewController打电话,viewControllerAfterViewController并且在收到零后不放弃.它可行吗?
Lou*_*nco 18
UIPageViewController有一个底层缓存.你可以用它重置它
pageViewController.dataSource = nil;
pageViewController.dataSource = self;
Run Code Online (Sandbox Code Playgroud)
一旦您所在的页面生效,您就可以调用此方法.