我在SAME视图控制器中看到了许多询问多个表视图的问题。但我的情况正好相反: 我有几个UITableViews在几个不同的UIViewControllers中具有确切的功能。我想知道,如何让所有这些UITableViews在DIFFERENT UIViewControllers中共享相同的委托方法,这样如果我修改,比如说,
中的代码-tableView: cellForRowAtIndexPath
所有UITableView都会发生这种变化,而不是我进入每个单一的视图控制器并进行修改。
答案 0 :(得分:0)
如果逻辑控制器具有相同的逻辑,则不需要多个视图控制器类。您可以只拥有同一个班级的多个实例。例如,您有一个包含逻辑的SomeTableViewController
,而在StoryBoard中,只需添加作为该类实例的新视图控制器。
如果您需要稍微不同的控制器,您仍然可以创建一个包含公共元素的泛型类,并从中继承您的不同控制器类。
答案 1 :(得分:0)
有多种方法可以实现此功能。我有两种方法可以想到。
创建UITableView
的子类并创建一个方法,让我们说customCellForRowAtIndexPath:
来实现您的共享功能。然后在您的视图中,控制器使tableViews成为此自定义UITableView
的子类,并在tableView:cellForRowAtIndexPath
中调用customCellForRowAtIndexPath:
摘要你的viewControllers。创建某种具有BaseViewController
方法共享功能的tableView:cellForRowAtIndexPath
。然后从BaseViewController
。
希望这有帮助, 干杯!
答案 2 :(得分:0)
我认为你可以为两个表设置委托(如果需要数据存储)。只需在两个地方都包含代理并进行设置即可。
[self.myTable setDelegate:myTableDelegate];
[self.myTable setDataSource:myTableDelegate];