UIPageViewController中的UITableView没有调用方法didSelectRowAtIndexPath

时间:2016-11-18 13:41:37

标签: ios objective-c uitableview uipageviewcontroller

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

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题...... 容器视图上有一个UITapGestureRecognizer。那是错误。 总而言之。