2016-02-29 63 views
0

我想創建一個函數,它接受UIViewController的兩個不同的子類。一個是UITableViewController,一個是UIViewController(都從UIViewController繼承)。在我的函數中,我想然後檢查ViewControllers的類型,以便在我的函數中訪問它們的屬性。如果可能,我該如何做到這一點?我已經厭倦了以下內容:將兩種不同類型的對象作爲一個函數變量傳遞

internal func myFunction(var controller: UIViewController) { 

     if controller is MyController { 
      controller = controller as! MyController 
     } 
     // Get errors saying my MyController properties are not available. Type of UIViewController has no member. 
} 
+0

如果同時從UIViewController的繼承,你應該得到一個UIViewController作爲參數 –

+0

謝謝你,這是一個錯字 – Siriss

+0

是什麼類型MenuController和myController的?這些都是另一方的父母嗎? –

回答

3

如果我理解你的權利,你想知道哪種類型的參數。如果是這樣,使用這種方法:

internal func myFunction(controller: UIViewController) { 

    if let menu = controller as? MenuController { 
     //menu is you MenuCOntroller 
    } else if let table = controller as? UITableViewController { 
     //table is your UITableViewController 
    } 

} 
相關問題