如何判断自定义 UITableViewCell Xib 在哪个 UIViewController 上?

Posted

技术标签:

【中文标题】如何判断自定义 UITableViewCell Xib 在哪个 UIViewController 上?【英文标题】:How to tell what UIViewController a custom UITableViewCell Xib is on? 【发布时间】:2015-08-19 16:56:13 【问题描述】:

我想找出自定义 Table View Cell 所在的 ViewController。我正在使用 UI Hierarchy 检查器,但没有看到 View Controller 的名称,它只是将 UITableView 作为单元格的超级视图。

是否有确定的方法来检查单元格并找出它出现在哪个视图之上?如果我不能在 UIHierachy Inspector 中执行此操作,我该如何执行此操作?

【问题讨论】:

没有办法找到它,但是,在创建单元格时向单元格添加属性并存储对视图控制器的引用很简单(练习留给读者)。跨度> 您写道“所有 ios 开发人员每天都需要处理这个问题”。不对。自 2008 年以来,我一直在开发 iOS 应用程序,并且从未需要这样做过一次。顺便说一句 - 你为什么需要这样做?一个单元格不应该关心它在哪个视图控制器中。如果你认为它是,那么你做错了。 @rmaddy 我同意,一个单元格不应该关心它在什么 VC 中。我不想直接对单元格做任何事情 - 所以是的,我的自定义单元格不关心什么 VC它在。我正在尝试根据单元内发生的行为向同一个 VC 添加其他内容。换句话说,我正在尝试将其他行为附加到单元的同一个父 VC。 如果您在谈论故事板,您可能需要查看连接检查器 问人们为什么在这里投票通常没有任何价值 - 投票在设计上是匿名的,人们可以出于他们喜欢的任何原因投票。你现在有两个上升,两个下降,所以你是有信誉的 - 无论如何它们只是假的互联网点,所以不要担心:-)。我唯一要补充的是,我们真的不希望问题/答案本身包含对投票的抱怨——大多数读者没有投票,只想查看与当前主题相关的材料。 【参考方案1】:

您可以使用关联引用来实现此目的。它们不漂亮,也不易于使用,但能够有效地将一个对象与另一个对象关联起来。

这是一个关于它们如何工作的教程的链接。

Associative References

消化后,您可以计划在迭代时将视图控制器/视图关联到 tableview 单元格(索引路径中的行单元格可能)

并且委托方法确实选择了索引路径处的行,您将能够获得关联引用并知道需要操作哪个视图控制器。

【讨论】:

以上是关于如何判断自定义 UITableViewCell Xib 在哪个 UIViewController 上?的主要内容,如果未能解决你的问题,请参考以下文章

您如何有效地使用自定义 UITableViewCell?

如何从 UiTableViewController 访问自定义 UITableViewCell 的属性?

如何在自定义 UITableViewCell 中增加 Label 的高度

如何从自定义 UITableViewCell 获取值到 ViewController?

如何借助 AutoLayout 在自定义 UITableviewCell 中添加自定义 UIView(xib)?

如何在 UITableViewCell 上使用自定义初始化程序?