我有 2 个 UIViewControllers
,这 2 个包含完全相同的 UITableView
(及其自定义单元格和委托(delegate)方法)。
我的问题是他们以任何方式“集中”UITableView
UI 和代码(数据源和委托(delegate)),这样我只需要在一个文件而不是 2 个文件中进行修改。
最佳答案
跟进我的评论,你父亲 vc 中的 xib 中的 TableView 和你父亲 vc 中的委托(delegate)方法只是在同一个地方,因为你选择它是这样的, TableView 和委托(delegate)方法是实际上相当超然。
所以创建一个新对象,比如FatherTableController
实现UITableViewDatasource
和 UITabelViewDelegate
并从你的 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/