【问题标题】:How to see UITableViewDelegate in Interface Builder?如何在 Interface Builder 中查看 UITableViewDelegate?
【发布时间】:2010-02-03 01:18:51
【问题描述】:

我有一个 UIViewController,我已将 UITableViewDelegate 添加到其中。这个控制器有一个相应的笔尖。我已经在 IB 中将两者关联起来。但是,nib 的 File's Owner 不显示 tableview 委托或数据源。我有一个类似的控制器和笔尖,其中 tableview 委托在 IB 中显示得很好。我看不出两者有什么区别。

让 tableview 委托和数据源显示在 IB 中我缺少什么?

-- 编辑:答案--
这个项目是基于标签栏的。对于第二个标签栏,我添加了一个专用的 nib 并将上面提到的 UIViewController 连接到它。笔尖总是加载,但 tableview 委托不做任何事情。这是因为我需要删除通过主窗口 nib 建立的此控制器的视图连接,这是在创建项目时自动完成的。创建新的选项卡栏项目时,每个视图都会连接起来。拥有自动视图连接加上我的自定义视图连接导致 tableview 委托出现问题。 IB 甚至在主窗口中显示了一个小警告,我显然没有看到。

【问题讨论】:

  • 文件的所有者是否在检查器中显示了预期的类类型? IB 应该能够找出 FO 的出口,但前提是它知道 FO 是什么类型。
  • 是 - FO 显示了正确的类类型,但仍然没有 tableview 委托。

标签: iphone cocoa-touch xcode interface-builder


【解决方案1】:

您的主视图现在是一种 UIView 而不是 UITableView。 因此,您的文件所有者不会显示数据源或委托。

要让它们出现,您必须拖动一个表格视图并将其添加为唯一存在的视图的子视图。将该 tableview 的委托和数据源连接到文件的所有者,它应该可以正常工作。

【讨论】:

    【解决方案2】:

    UITableView 委托和数据源协议属于 UITableView - 只有当你有一个 UITableView 可以附加到某个地方时,你才会看到它们。

    如果您有一个 UITableViewController(它是一种 UIViewController),您可能已经看到它们出现在其他地方的文件所有者中,它可能会公开这些委托,以便能够为它所持有的内部 UITableView 设置它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      相关资源
      最近更新 更多