Ios UITableViewController作为ChildViewController不调用委托方法

Ios UITableViewController作为ChildViewController不调用委托方法,ios,uitableview,xcode6,didselectrowatindexpath,childviewcontroller,Ios,Uitableview,Xcode6,Didselectrowatindexpath,Childviewcontroller,我有一个UITableViewController,当我将它用作“初始视图控制器”时,它工作得非常完美。 现在,我将它用作另一个视图控制器的“子视图控制器”,但现在当我尝试选择一行时,不会调用“didSelectRow”方法,而当我长按同一行时,会调用“didSelectRow”方法。 我已经在SO上查看了UITableviewController上的几乎所有问题,但到目前为止,我还没有找到任何解决此问题的方法 我使用的是XCode 6,下面的代码用于将其添加为子视图控制器 [self addC

我有一个UITableViewController,当我将它用作“初始视图控制器”时,它工作得非常完美。 现在,我将它用作另一个视图控制器的“子视图控制器”,但现在当我尝试选择一行时,不会调用“didSelectRow”方法,而当我长按同一行时,会调用“didSelectRow”方法。 我已经在SO上查看了UITableviewController上的几乎所有问题,但到目前为止,我还没有找到任何解决此问题的方法

我使用的是XCode 6,下面的代码用于将其添加为子视图控制器

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

如果您需要任何帮助,我们将不胜感激。

当您调用该方法时

[self addChildViewController:vc];
您只需告诉父视图控制器转发外观和方向方法,如

  • 视图将显示:
  • 视图显示:
  • 视图将消失:
  • 视窗消失:
  • willRotateToInterfaceOrientation:持续时间:
  • WillAnimateRotationInterfaceOrientation:持续时间:
  • DidRotateFromInterface方向:

因此,我认为最好创建UITableView,并将父视图控制器指定为tableview的委托和数据源。因此,您的视图控制器需要采用UITableViewDelegate协议和UITableViewDataSource。

多亏了这个答案,我终于解决了这个问题


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

这是可行的,但我不想这样做,问题是为什么UITableViewController在添加为childViewController时不能按预期工作;和[self.ringtoneView addSubview:vc.view];在父视图控制器的ViewDidDisplay方法中。[vc didMoveToParentViewController:self];没有用处。我不是在viewDidLoad上添加childViewController,而是在满足某些条件时在运行时动态添加