当用户位于某个页面的第一页时UIPageViewController
并尝试返回,我只是返回零。在 iOS 5 中这工作得很好。它导致 iOS 6 崩溃。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The number of view controllers provided (0) doesn't match the number required (1) for the requested transition'
这是我的代码。返程时contentViewController
代替nil
,效果很好。我应该放什么来代替nil
?
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController {
contentViewController = [[ContentViewController_iPhone alloc] init];
int currentIndex = [self.modelArray indexOfObject:[(ContentViewController_iPhone *)viewController labelContents]];
if ((currentIndex == 0) || (currentIndex == NSNotFound)) {
//if on the first page, can't go back
return nil;
}
contentViewController.labelContents = [self.modelArray objectAtIndex:currentIndex - 1];
return contentViewController;
}
我遇到了同样的问题,发现只有当我将 pageviewcontrollersgestureRecognizers 的委托更改为我自己的控制器时才会发生这种情况(如果您想在用户点击页面上的某些区域时取消分页,则通常会这样做,例如纽扣).
对我来说,在 iOS 6 中不进行这种重新分配是可行的。这很好,因为 iOS 处理触摸的方式有点不同。页面上的按钮或您自己的手势识别器在 iOS 6 下可以正常工作,因为它们具有优先级,并且会自动取消分页。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)