2013-07-11 23 views
0

工作和iOS的应用我目前没有设置组成:互动的UITableViewController在容器

RootViewController的通过

[self addChildViewController:tableVC]; 

迷上了一个UITableViewController随着tableVC.view作为rootViewControllers视图的子视图。然后RootVC拥有一个UIPanGestureRecognizer,用于为显示表格的左侧的平移动画。

这一切工作正常并且该表是作为一个伟大的静态视图,但是当你试图解雇

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

通过点击一个细胞,它永远不会被调用。我已经检查过手势识别器是否意外记录了水龙头,但他们没有。

我是否需要以某种方式告诉RootVC,当tableView在屏幕上发送到点击UITableViewController的孩子?

+0

检查你的UITableView委托,这与数据源不同。应该为此邀请代表,你有没有设置它? – user387184

+0

是的,我已经检查了委托,如果初始化为RootViewController,则UITableViewController的确切类可以正常工作。以这种方式显示时,它不起作用。 – BradStevenson

+0

你的问题的答案是否定的。如果你点击桌面视图,它应该会收到点击很好。你在哪里做了SelectRowAtIndexPath?哪个控制器是表视图的代表?您可以尝试将RootViewController的视图的clipsToBounds属性设置为YES,以确保您的表视图实际上位于该视图的范围内。 – rdelmar

回答

0

谢谢rdelmar帮助我解决这个与他的建议,使用UITableView的superview的clipToBounds属性。

这表明UIViews通过panning werent响应任何触摸显示出来,因为它们超出了它们的超视界范围。

我解决了这个问题,用适当的尺寸添加了另一个视图'spanView'来包含所有的子视图。在此之后,他们按照预期做出了回应。

的hiearchy结束了:

      -> leftTableView 
RootVC.view - > spanView -> centerView 
         -> rightTableView 

请注意,我不得不创建RootVC的子视图来实现这个作为后viewDidLoad中的iOS设置rootVC.view到设备屏幕的边界

相关问题