当我浏览 UIPageViewController
时比它的过渡动画快我得到'Unbalanced calls to begin/end appearance transitions for <MyDataViewController>
' 直到我尝试翻页时,横向的两个 View 之一才会显示。
有人有解决这个错误的想法吗?
最佳答案
上面的答案是正确的,但我认为比需要的更详细,cookbook 很有帮助。所以这似乎对我有用:
在设置和调用pageViewController的view controller中, 声明:
@property (assign) BOOL pageIsAnimating;
并在 viewDidLoad 中:
pageIsAnimating = NO;
添加这个:
- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers {
pageIsAnimating = YES;
}
并添加几行到:
- (void)pageViewController:(UIPageViewController *)pageViewController
didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers
transitionCompleted:(BOOL)completed {
if (completed || finished) // Turn is either finished or aborted
pageIsAnimating = NO;
...
}
通过拒绝提供 View Controller 信息来抑制手势:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerAfterViewController:(UIViewController *)viewController {
if (pageIsAnimating)
return nil;
...
return after;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController {
if (pageIsAnimating)
return nil;
...
return before;
}
哦,方向更改会重置标志:
- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController
spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation {
pageIsAnimating = NO;
...
}
关于ios - UIPageViewController 转换 'Unbalanced calls to begin/end appearance transitions for ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248282/