【问题标题】:How to add ChildViewController to UITableViewController?如何将 ChildViewController 添加到 UITableViewController?
【发布时间】:2014-05-23 11:04:41
【问题描述】:

由于设计约束,我必须通过向 UITableViewController 添加一个 UiViewController

[controller addChildViewController:self];//self = uiviewcontroller controller = Instance of UITableViewController

[controller.view addSubview:self.view];

添加它有点滞后,但我在控制台中收到警告

“设置表格的第一响应者视图,但我们不知道它的类型(单元格/页眉/页脚)”

我猜是因为controller.view是tableview而不是普通的uiview,它在iOS6和iOS7都会抛出这个错误

如何将 ChildViewController 添加到 UITableViewController?

【问题讨论】:

  • 出于好奇,您为什么要这样做?对于页眉、页脚和内容单元格无法完成的任务,您需要做什么?如果你真的需要,自定义 UIView 会代替 UIViewController 工作吗?
  • 您作为表格视图控制器的子视图添加的任何视图都会添加到表格本身,这就是您收到该错误的原因 - 表格视图不知道如何处理您的孩子的看法。
  • 我刚刚尝试了您在此处所做的操作(尽管从表视图控制器的角度来看),但没有收到任何警告。
  • 另外,如果表格视图中的任何子视图中的文本字段不是页眉、页脚或单元格,则似乎会出现此警告。 stackoverflow.com/a/10766933/84783

标签: ios objective-c uitableview


【解决方案1】:

简短的回答:不要。 UITableViewControllers 除了表格视图之外不能包含任何其他内容。正如 rob 在他的回答中所说,最好有一个父视图控制器,其中包含一个容器视图,其中包含您的表视图控制器,以及您需要的任何其他内容,如果需要,可能还有其他子视图控制器。

【讨论】:

    【解决方案2】:

    对于您正在寻找的布局,您最快的解决方法是拥有一个父视图控制器,其中包括您的表视图控制器和带有 UITextField 的子视图控制器。

    或者只是一个带有 UITableView 的视图控制器(它的数据源和委托设置为您的视图控制器)并添加了您的子视图控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2010-12-02
      • 1970-01-01
      • 2011-08-22
      相关资源
      最近更新 更多