containerViewController
|
V
pageViewController
| |
V V
ViewController1 ViewController2
|
V
tableView (property of ViewController2)
您好,
我有一个带有两个UIViewControllers的pageViewController。其中一个包含tableView。 当我的tableView在这个pageViewController中创建时,方法didSelectRowAtIndexPath从未被触发过。但是,我可以处理"触摸事件"在我的牢房里。
查看以下代码:
// Init pageViewController
self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageController.view.translatesAutoresizingMaskIntoConstraints = false;
CGRect pageFrame = self.view.bounds;
pageFrame.origin.y = TOP_BAR_HEIGHT;
self.pageController.view.frame = pageFrame;
// Set pageviewControllers with my array of controllers (with ViewController1 and ViewController2)
[self.pageController setViewControllers:@[self.subViewControllers[0]]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
[self addChildViewController:self.pageController];
[self.view addSubview:self.pageController.view];
[self.pageController didMoveToParentViewController:self];
但是,非常奇怪的是:当我用手指拖动细胞时,我移开手指,方法didSelect被解雇,而简单的触摸不起作用......
我已经在Stackoverflow上搜索了,我只找到了topic。
他用UIViewController中的嵌入式tableView解决了他的问题,但是我已经实现了我的代码...
编辑:我已将代码放在Github上。 source code答案 0 :(得分:0)
好的,我发现了问题...... 容器视图上有一个UITapGestureRecognizer。那是错误。 总而言之。