ios - 重用 UITableView 及其 UI/委托(delegate)方法

标签 ios objective-c uitableview uiviewcontroller

我有 2 个 UIViewControllers,这 2 个包含完全相同的 UITableView(及其自定义单元格和委托(delegate)方法)。 我的问题是他们以任何方式“集中”UITableView UI 和代码(数据源和委托(delegate)),这样我只需要在一个文件而不是 2 个文件中进行修改。

最佳答案

跟进我的评论,你父亲 vc 中的 xib 中的 TableView 和你父亲 vc 中的委托(delegate)方法只是在同一个地方,因为你选择它是这样的, TableView 和委托(delegate)方法是实际上相当超然。

所以创建一个新对象,比如FatherTableController实现UITableViewDatasourceUITabelViewDelegate并从你的 FatherViewController 中复制这些方法进入这个FatherTableController

现在在你的 FatherViewController 中,开始吧

FatherTableController tableController = [FatherTableController new]; //should be a property or a singleton

self.tableview.delegate = tableController;
self.tableview.datasource = tableController;

现在您可以在使用同一个表的两个单独的 vc 中执行此操作,如果您以某种方式共享它,甚至可以在两个 View 之间使用完全相同的表 Controller (可能通过单例模式,这对在两个 View Controller 之间共享状态)

关于ios - 重用 UITableView 及其 UI/委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441159/

相关文章:

ios - 右上角的 swift 4 中的 byRoundingcorners 不起作用

ios - iOS6 中 MKUserTrackingModeFollowWithHeading 错误的任何解决方法?

ios - 当值为 nil 更新到 3.10 时,iOS 上的 Google Analytics 崩溃

ios - UITableView 行高基于单元格内容

ios - 获取主视图 Controller 中子容器 View 中 tableView 的引用

ios - NSKeyedArchiver 和 Apple 上传

ios - 应该如何分发使用 VOIP 标志始终保持连接的 b2b 应用程序

Objective-C 使用动态绑定(bind),但是如何呢?

objective-c - 更改 UITableView 的编辑样式

ios - UITableView:最后一个单元格不完全可见