表示有点儿无语了,以为是自己写的逻辑有问题,调了一个多小时,实际有点儿没有头绪了,于是google一下,发现竟然是iOS本身的一个小Bug,苦逼的码农真心伤不起啊。
问题描述:
iOS6使用UIPageViewController通过UIPageViewControllerNavigationDirectionReverse向回跳转翻页时,总会出现下一页不对的情况,因为下一页就是跳转以前的页面所以给你的感觉就是好像上一页被缓存成下一页了。这种情况大多发生在跳转的时候,使用了动画并且切换方式是UIPageViewControllerTransitionStyleScroll.
解决办法1:
__block YourSelfClass *blocksafeSelf = self;
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished){
if(finished)
{
dispatch_async(dispatch_get_main_queue(), ^{
[blocksafeSelf.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];// bug fix for uipageview controller
});
}
}];
解决办法2(我用这种):
另外为了避免这种情况发生,也可以:
1.不使用UIPageViewControllerTransitionStyleScroll方式
2.切换时animated:NO
网友评论