2016-03-14 82 views
0

我有一個繼承自UIViewController的Swift類,我想知道是否有任何方法可以在UITableViewController上使用同一個類來避免重複。在UITableViewController上使用UIViewController類

class GradientViewController: UIViewController { 
    // My class 
} 

有沒有什麼方法可以在UITableViewController上使用這個類,就像這樣?

class MyTableViewController: GradientViewController { 
    // My table view controller 
} 

感謝事先只

回答

0

斯威夫特支持單一繼承。

您可以使用協議來避免重複。

protocol YourProtocolName { 
    // Protocol stuff 
} 

class GradientViewController: UIViewController, YourProtocolName { 
    // Implement protocol requirements 
} 

class MyTableViewController: UITableViewController, YourProtocolName { 
    // Implement protocol requirements 
} 

如果有意義,甚至可以使用協議擴展來提供默認實現,以使符合類型不需要添加任何符合的代碼。

+0

有沒有什麼辦法可以使用this(self.view.addSubview)引用控制器的UIView,或者重寫像viewWillTransitionToSize這樣的方法? – AppleBetas

+0

你問你是否可以在協議擴展中做這些事情? –

+0

我想通過向協議添加一個變量UIView並在擴展的方法中使用它。我現在得到一個錯誤,我不符合協議。我如何確保協議使用我在擴展中添加的默認實現? – AppleBetas

相關問題