2014-11-09 85 views
0

我想將字符串轉換爲類類型。將字符串轉換爲Swift中的類類型

func getViewController(sbName: String, vcName: String, vcType: String) -> UIViewController{ 
    let classType = ????? //What to put here? 
    let sb = UIStoryboard(name: sbName, bundle: nil) 
    var vc = sb.instantiateViewControllerWithIdentifier(vcName) as classType 

    return vc 
} 

如果有人能帶領我走向正確的方向,我將不勝感激!我有一種感覺,有辦法做到這一點,但一直沒能找到辦法。

回答

2

如果你只擔心Objective-C的基礎類,你可以使用NSClassFromString("ClassName")

但是,你的方法是明確地返回的UIViewController。將vc轉換爲類類型不會對你有所幫助。

也許泛型方法將是你最好:

func getViewController<T: UIViewController>(sbName: String, vcName: String) -> T { 
    let sb = UIStoryboard(name: sbName, bundle: nil) 
    var vc = sb.instantiateViewControllerWithIdentifier(vcName) as T 
    return vc 
} 

類型然後可以從您試圖此賦值給變量推斷:

var viewController: MyViewController = getViewController("ASDF", "ASDF") 
+0

謝謝,這個固定我的問題太。你的答案應該被接受! – Pieter 2015-11-03 10:41:17