UITableViewController作为ChildViewController不调用委托方法

时间:2014-11-29 15:56:24

标签: ios uitableview xcode6 didselectrowatindexpath childviewcontroller

我有一个UITableViewController,当我用它作为初始视图控制器' ,它很完美。 现在,我将它用作儿童视图控制器'另一个View控制器,但现在当我尝试选择一行时,' didSelectRow'当我长时间点击同一行时,不会调用方法,而是选择了#Se;方法被调用。     我在UITableviewController上几乎每个问题都经历过SO,但直到现在我还没有找到解决这个问题的方法。

我正在使用XCode 6,以下代码用于将其添加为子视图控制器

[self addChildViewController:vc];
[self.ringtoneView addSubview:vc.view];
[vc didMoveToParentViewController:self];

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

调用方法时

[self addChildViewController:vc];

你只需告诉父母viewcontroller转发像

这样的观察和定位方法
  • viewWillAppear中:
  • viewDidAppear:
  • viewWillDisappear:
  • viewDidDisappear:
  • willRotateToInterfaceOrientation:持续时间:
  • willAnimateRotationToInterfaceOrientation:持续时间:
  • didRotateFromInterfaceOrientation:

所以我认为创建一个UITableView并将您的父视图控制器指定为tableview的委托和数据源会更好。所以你的视图控制器需要采用UITableViewDelegate协议和UITableViewDataSource。

答案 1 :(得分:0)

最后,由于这个答案,我设法解决了这个问题 https://stackoverflow.com/a/18159463/3632958

我在父视图控制器中错误地添加了一个轻击手势识别器,这阻止了对表视图的正常选择。