title: UIPageViewController, how do I correctly jump to a specific page without messing up the order specified by the data source?
body: <p>I've found a few questions about how to make a <code>UIPageViewController</code> jump to a specific page, but I've noticed an added problem with jumping that none of the answers seem to acknowledge.</p>
  
  <p>Without going into the details of my iOS app (which is similar to a paged calendar), here is what I'm experiencing. I declare a <code>UIPageViewController</code>, set the current view controller, and implement a data source.</p>
  
  <pre><code>// end of the init method
          pageViewController = [[UIPageViewController alloc] 
          initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
            navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
                          options:nil];
          pageViewController.dataSource = self;
          [self jumpToDay:0];
  }
  
  //...
  
  - (void)jumpToDay:(NSInteger)day {
          UIViewController *controller = [self dequeuePreviousDayViewControllerWithDaysBack:day];
          [pageViewController setViewControllers:@[controller]
                                      direction:UIPageViewControllerNavigationDirectionForward
                                       animated:YES
                                     completion:nil];
  }
  
  - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
          NSInteger days = ((THDayViewController *)viewController).daysAgo;
          return [self dequeuePreviousDayViewControllerWithDaysBack:days + 1];
  }
  
  - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
          NSInteger days = ((THDayViewController *)viewController).daysAgo;
          return [self dequeuePreviousDayViewControllerWithDaysBack:days - 1];
  }
  
  - (UIViewController *)dequeuePreviousDayViewControllerWithDaysBack:(NSInteger)days {
          return [[THPreviousDayViewController alloc] initWithDaysAgo:days];
  }
  </code></pre>
  
  <p>Edit Note: I added simplified code for the dequeuing method. Even with this blasphemous implementation I have the exact same problem with page order.</p>
  
  <p>The initialization all works as expected. The incremental paging all works fine as well. The issue is that if I ever call <code>jumpToDay</code> again, the order gets jumbled.</p>
  
  <p>If the user is on day -5 and jumps to day 1, a scroll to the left will reveal day -5 again instead of the appropriate day 0. This seems to have something to do with how <code>UIPageViewController</code> keeps references to nearby pages, but I can't find any reference to a method that would force it to refresh it's cache.</p>
  
  <p>Any ideas?</p>