在我的情况下,父UIViewController包含UIPageViewController ,其中包含UINavigationController其中包含UIViewController 。 我想添加一个滑动手势到最后一个视图控制器,但滑动处理,如果他们属于页面视图控制器。 我试图以编程方式和通过xib,但没有结果。 所以据我所知,我不能达到我的目标,直到UIPageViewController处理其手势。 如何解决这个问题?
我发现了一些关于如何使UIPageViewController跳转到特定页面的问题,但是我注意到跳转出现了一个额外的问题,没有一个答案似乎承认。 没有进入我的iOS应用程序的细节(这是类似于分页日历),这是我正在经历的。 我声明一个UIPageViewController ,设置当前的视图控制器,并实现一个数据源。 // end of the init method pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; pageViewController.dataSource = self; [self jumpToDay:0]; } //… – (void)jumpToDay:(NSInteger)day { UIViewController *controller = [self dequeuePreviousDayViewControllerWithDaysBack:day]; [pageViewController setViewControllers:@[controller] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil]; } – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { NSInteger days = ((THDayViewController *)viewController).daysAgo; return [self dequeuePreviousDayViewControllerWithDaysBack:days + 1]; […]
为这个search了很多,但是还找不到合适的解决scheme。 是否有可能禁用UIPageViewController的反弹效果,仍然使用UIPageViewControllerTransitionStyleScroll ?
你怎么知道UIPageViewController显示的当前页面/视图是UIPageViewController ? 我已经重写了我的子视图的viewDidAppear方法,以便他们在viewDidAppear方法中向父视图发送一个id。 但是,问题是这样的:我不能可靠地使用该ID作为显示页面的ID。 因为如果用户翻页而中途决定停止翻页并放回页面,则viewDidAppear已经被调用。 (视图在curl页面后面可见)。 也许我应该只切换到一个新的ID如果当前视图消失。 但是,我想知道是否没有更简单的方法来返回当前可见的视图?