当用户旋转设备时,UIPageViewController
将从显示的任何页面淡出到第一页。这真的很烦人,尤其是当用户将多个页面放入文档时。它只发生在iOS 6中。
当用户旋转设备时,会调用spineLocationForInterfaceOrientation
,这可能与问题有关。
- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController
spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation {
return UIPageViewControllerSpineLocationMin;
}
我总是希望脊柱在左边。
您是否知道导致UIPageViewController
重置的原因是什么?我发现了一个错误报告here,但我无法在网上找到任何其他信息,让我觉得我做错了。
答案 0 :(得分:2)
我不知道存在这样的错误,但最糟糕的情况是,您可以覆盖
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration;
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;
捕获旧状态并在转换完成后重新设置它。我很想相信还有其他因素导致了这个问题,但是如果没有更多的数据,我无法分辨。你可以发布更多的UIPageViewController代码吗?
答案 1 :(得分:2)
您的spineLocationForInterfaceOrientation
不完整
它应该是这样的:
- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController
spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation
{
UIViewController *currentViewController = self.pageViewController.viewControllers[0];
NSArray *viewControllers = @[currentViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];
return UIPageViewControllerSpineLocationMin;
}