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有关)。 我试过的东西包括:
- 将tableViewController.view的委托设置为mainViewController,没用
- 实现gestureRecognizer:shouldReceiveTouch,甚至没有调用
- pageVC.gestureRecognizers是空的
我还没有尝试做UITouch级别的事情,这将是一种肮脏,并且将是尝试的最后一步。
我的代码附在下面,一些解释:
- UIPageViewController * pageVC是mainViewController的一个数据成员)
- 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];
从你的视图层次结构…你的视图控制器( UITableViewcontroller
) UIPageViewController
权利? 而不是UITableViewController
你可以创buildUIViewController
,你可以在其中添加UITableview
。