我有几个UITableViewControllers可以创建相同的部分标题。目前,我已经在每个视图控制器中复制粘贴了viewForHeaderInSection代码。但这是一种不好的做法。我可以创建一个可以提供实现的基类,但我正在寻找更好的方法。基类的问题是它只能用于UITableViewController,除非我有UIViewController的基类。如果我使用UIViewController作为基类,那么大多数视图控制器将获得该功能,即使他们不需要它。
我该如何解决这个问题?我尝试过Protocol Extensions但你不能覆盖协议扩展中的方法。
答案 0 :(得分:0)
处理此问题的一个好方法是为标头创建自定义UIView
子类。然后,在每个TableViewControllers中,您可以执行以下操作:
class TVC: UITableViewController {
//...
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return MyCustomHeaderView(title: "sometitle", ... )
}
//...
}