私はこれに何時間も燃やしました。で初期化UIPageViewController
しましたが、ユーザーが垂直方向にパンするとUIPageViewControllerNavigationOrientationHorizontal
、何らかの理由で呼び出されます。viewControllerBeforeViewController
また、これが発生した場合、ページめくりdidFinishAnimating:didFinishAnimating:previousViewControllers:transitionCompleted
はなく、まったく呼び出されません。これは、ページビューコントローラがこれが垂直方向の動きであることを認識していることを意味します。
これは初期化コードです-
- (void)initPageViewController
{
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:nil];
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
// Set the page view controller's bounds using an inset rect so that self's view is visible around the edges of the pages.
self.pageViewController.view.frame = self.view.bounds;
[self.pageViewController didMoveToParentViewController:self];
// Leave only pan recognizers enabled, so buttons positioned inside a page would work.
for (UIGestureRecognizer *gr in self.pageViewController.gestureRecognizers)
{
if ([gr class] != [UIPanGestureRecognizer class])
gr.enabled = NO;
}
}
何か案は?