ios - 从外部源设置 UITableViewCell 内部的内容?

标签 ios cocoa-touch uitableview

我有一个带有几个 UITableViewCell 的 UITableViewController。每个单元格都有不同的内容:标签、图像、文本字段等。我需要根据我的 UITableViewController 类的用户交互来设置这些内容。

例如:我有一个包含 UIImageView 的单元格。当用户点击 UIImageView 时,我希望显示 UIActionSheet。问题是我无法将 UIImageView 设置为 UITableViewController 类的属性。它必须是该 UITableViewCell 的子类的属性。但这意味着如果我编写用于在 UITableViewCell 子类中显示 UIActionSheet 的代码,它不会在 UITableViewController 类中显示。

我的问题是,由于 UITableViewCell 中的所有对象都在它们自己的类中,当这些操作之一发生时,我如何提醒 UITableViewController 类?

此外,当显示 UIActionSheet 时,它需要显示在我的 UITableViewController 类中。如果我从该操作表中选择一个项目并希望该项目的文本传播以设置 UITableViewCell 内的 UILabel 文本,我该怎么做?

最佳答案

使用 UITableViewController,您可以通过 UITableViewDataSource 实现来控制一切。

您可以这样做:在您的模型类中创建一个 int 字段,说明哪一行需要显示带有操作表的单元格,并将其设置为 -1(这意味着没有单元格需要显示操作表)。在 UIImageView 的点击处理程序中调用模型,并告诉它 UIImageView 所属的单元格现在需要一个操作表。那时你告诉你的 UITableView 重新加载数据。这让整个系统再次启动 - TableView 回调您的数据源以请求计数,然后它再次调用单元格。这是当您的数据源查看模型时,看到该行需要一个操作表,并返回一个操作表可见的单元格子类。

这是一个显示此事件序列的图表。

Interaction diagram

当用户完成操作表时,操作表需要再次调用模型,并告诉它不再需要操作表(即将索引设置回-1 ).之后它应该再次调用 TableView ,并告诉它重新加载数据。该序列将再次重复,但现在将没有标志要求操作表,因此将返回一个常规单元格。

关于ios - 从外部源设置 UITableViewCell 内部的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053319/

相关文章:

ios - UITableView 移动到单元格

ios - 使用 NSUserDefaults 持久保留 UITableView 选定单元格的 UIAccessoryType

iphone - 在 UIWebView 中加载本地 HTML 文件时遇到问题

cocoa-touch - NSString 中的上标序号后缀

iphone - iOS 应用程序在 Core Location 回调机制中崩溃

ios - UITableViewCell dequeueReusableCellWithIdentifier :forIndexPath: issue

swift - 图像未显示在表格 View 中

ios - 如何调整文本(字体)的大小以适应 UISegmentedControl 的 UISegment?

ios - 在 iOS swift 中旋转和混合图像

ios - 如何在不耗尽电池的情况下监控 MPMoviePlayerController 播放进度?