gpt4 book ai didi

ios - 如何从 UITableViewCell 类引用 UITableViewController?

转载 作者:IT王子 更新时间:2023-10-29 05:03:11 25 4
gpt4 key购买 nike

我有以下内容:

  1. UITableViewController
  2. UITableView
  3. 自定义 UITableViewCell 子类

我为单元格使用了一个 .xib 文件,它是一个 CustomCell 子类。此自定义单元格处理单元格按钮上的某些触摸事件的 IBAction。

我想从单元格中引用 ViewController 及其一些变量。

我应该如何从 UITableViewCell 类访问 UITableViewController?

最佳答案

我不会在单元格和 View Controller 之间创建这种依赖关系 - 这会使架构更加复杂并且单元格不可重用。

我建议您使用委托(delegate)模式,这听起来可能有点复杂 - 尽管您已经在使用(UITableViewDelegate 是一个典型示例):

  • 使用一个方法 didTapCell 创建一个协议(protocol) MyCellProtocol,接受一个 UITableViewCell 和/或您想要传递给 View Controller 的一些自定义数据
  • 在您的自定义单元格中创建一个公共(public)委托(delegate)属性:weak var cellDelegate: MyCellProtocol?
  • 在单元格的 didTapXXX 处理程序或 didSelectRowAtIndexPath 中,调用 self.cellDelegate?.didTapCell(),传递预期的参数<
  • 在你的 View Controller 中,实现MyCellProtocol
  • 在 View Controller 的 cellForRowAtIndexPath 中,在创建/出列单元格时,将其 cellDelegate 属性设置为 self

此时,当在您的单元格中完成点击时,将调用 View Controller 的 didTapCell 方法,您可以从那里执行您需要实现的任何操作。

关键点是:通知 View Controller 并让它完成工作,而不是让单元处理单元点击/选择。

关于ios - 如何从 UITableViewCell 类引用 UITableViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com