为多个UITableViewControllers提供公共viewForForEeaderInSection

时间:2015-11-03 20:29:13

标签: ios swift

我有几个UITableViewControllers可以创建相同的部分标题。目前,我已经在每个视图控制器中复制粘贴了viewForHeaderInSection代码。但这是一种不好的做法。我可以创建一个可以提供实现的基类,但我正在寻找更好的方法。基类的问题是它只能用于UITableViewController,除非我有UIViewController的基类。如果我使用UIViewController作为基类,那么大多数视图控制器将获得该功能,即使他们不需要它。

我该如何解决这个问题?我尝试过Protocol Extensions但你不能覆盖协议扩展中的方法。

1 个答案:

答案 0 :(得分:0)

处理此问题的一个好方法是为标头创建自定义UIView子类。然后,在每个TableViewControllers中,您可以执行以下操作:

class TVC: UITableViewController {
    //...
    override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return MyCustomHeaderView(title: "sometitle", ... )
    }
    //...
}