2015-11-03 16 views
0

我有幾個UITableViewControllers創建相同的確切節頭。目前,我有複製粘貼每個視圖控制器viewForHeaderInSection代碼。但這是一個不好的做法。我可以創建一個可以提供該實現的基類,但我正在尋找更好的方法。基類的問題在於它只能使用UITableViewController,除非我有UIViewController的基類。如果我使用UIViewController作爲基類,那麼大多數視圖控制器即使不需要它也會獲得該功能。爲多個UITableViewControllers提供一個共同的viewForHeaderInSection

我該如何解決這個問題?我嘗試了協議擴展,但不能覆蓋協議擴展中的方法。

回答

0

處理此問題的好方法是爲您的標題創建自定義UIView子類。然後,在你的每個TableViewControllers中,你可以這樣做:

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

這就是我正在做的!但既然它是相同的自定義視圖,我想知道是否有更好的方法,所以我不必多次實現viewForHeaderInSection。 –

相關問題