embedded在UIPageViewController(ScrollStyle)中的UITableView不能被挖掘 – didSelectRowAtIndexPath没有被触发

我的viewcontrollers的架构是:

mainViewController(full-screen) | V pageViewController(part-of-screen) | | VV tableViewController1 tableViewController2 

与大多数现有的post不同,UIPageViewController被设置为样式: UIPageViewControllerTransitionStyleScroll ,这意味着pageVC.gestureRecognizers是空的,我无法findtapGuesture禁用。

我search了整个下午的网站,并find解决scheme(大多数答案都与pageCurlStyle有关)。 我试过的东西包括:

  1. 将tableViewController.view的委托设置为mainViewController,没用
  2. 实现gestureRecognizer:shouldReceiveTouch,甚至没有调用
  3. pageVC.gestureRecognizers是空的

我还没有尝试做UITouch级别的事情,这将是一种肮脏,并且将是尝试的最后一步。

我的代码附在下面,一些解释:

  1. UIPageViewController * pageVC是mainViewController的一个数据成员)
  2. listVCs包含UITableViewControllers

代码:

 // 3. create page view controller pageVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; pageVC.dataSource = self; pageVC.delegate = self; pageVC.doubleSided = NO; pageVC.view.frame = _viewLayoutRef.frame; // 3.1 set the VCs into pageVC NSArray* aVC = @[[listVCs objectAtIndex:0]]; [pageVC setViewControllers:aVC direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; // 3.2 hook page view controller [self addChildViewController:pageVC]; [self.view addSubview:pageVC.view]; [pageVC didMoveToParentViewController:self]; 

从你的视图层次结构…你的视图控制器( UITableViewcontrollerUIPageViewController权利? 而不是UITableViewController你可以创buildUIViewController ,你可以在其中添加UITableview