我的视图控制器架构是:
mainViewController(full-screen)
|
V
pageViewController(part-of-screen)
| |
V V
tableViewController1 tableViewController2
与大多数现有帖子不同,UIPageViewController 设置为样式:UIPageViewControllerTransitionStyleScroll,这意味着 pageVC.gestureRecognizers 为空,并且我找不到要禁用的 tapGuesture。
我在网站上搜索了一下午,没有找到任何解决方案(大多数答案都与 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
) to UIPageViewController
正确的?代替UITableViewController
你可以创建UIViewController
您可以在其中添加UITableview
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)