我使用UIPageViewController
显示一系列UITableView
个对象,每个对象代表特定日期的数据。您可以从一个日期水平滚动到下一个或上一个完美运行的日期。当用户从单独的菜单中选择日期时,会设置新的UITableViewController
。问题是,现在再次调用左pageViewController:viewControllerBeforeViewController:
滑动导致显示UITableView
,其中包含在手动选择新日期之前显示的表视图的上一个日期。
示例:进入场景时,显示日期为2014/10/15。当显示2014/10/14时,当再次显示向前滚动2014/10/15时。到现在为止还挺好。现在选择并显示2014/10/21。向后滚动时,应显示2014/10/20,但会显示2014/10/14。有人也遇到过这个问题吗?我认为幕后有一些缓存技术。
- (UIViewController *) pageViewController: (UIPageViewController *) pageViewController viewControllerBeforeViewController: (RTNewsTVController *) viewController {
NSLog(@"%s", __PRETTY_FUNCTION__);
return [[RTDishesTVController alloc] initWithDate: [viewController.selectedDate datePlusDays: -1]];
}
- (UIViewController *) pageViewController: (UIPageViewController *) pageViewController viewControllerAfterViewController: (RTNewsTVController *) viewController {
NSLog(@"%s", __PRETTY_FUNCTION__);
return [[RTDishesTVController alloc] initWithDate: [viewController.selectedDate datePlusDays: 1]];
}
- (void) didSelectDate: (NSDate *) date {
RTNewsTVController *currentController = [[RTNewsTVController alloc] initWithDate: date];
[self setViewControllers: @[currentController] direction: UIPageViewControllerNavigationDirectionForward animated: YES completion: nil];
}