3

我有一个 UITableViewController ,当我将它用作“初始视图控制器”时,它工作得很好。现在,我将它用作另一个视图控制器的“子视图控制器”,但是现在当我尝试选择一行时,不会调用“didSelectRow”方法,而当我长按同一行时,“didSelectRow”方法被调用。我已经在 SO 上完成了关于 UITableviewController 的几乎所有问题,但直到现在我还没有找到任何解决这个问题的方法。

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

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

任何帮助将不胜感激。

4

2 回答 2

2

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

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

于 2014-11-30T09:00:37.757 回答
1

当你调用方法时

[self addChildViewController:vc];

您只需告诉父母视图控制器转发外观和方向方法,例如

  • 视图将出现:
  • viewDidAppear:
  • 视图将消失:
  • viewDidDisappear:
  • willRotateToInterfaceOrientation:持续时间:
  • willAnimateRotationToInterfaceOrientation:duration:
  • didRotateFromInterfaceOrientation:

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

于 2014-11-29T16:55:26.387 回答