考虑这种模式
extension UIViewController
{
class func make(sb: String, id: String) -> Self
{
return helper(sb:sb, id:id)
}
private class func helper<T>(sb: String,id: String) -> T
{
let s = UIStoryboard(name: storyboardName, bundle: nil)
let c = s.instantiateViewControllerWithIdentifier(id) as! T
return c
}
}
工作正常,所以
let s = SomeViewControllerClass.make( ... )
事实上确实返回子类“SomeViewControllerClass”。 (不只是一个UIViewController。)
这是所有罚款,
在说make
你想要做一些设置:
class func make(sb: String, id: String) -> Self
{
let h = helper(sb:sb, id:id)
// some setup, m.view = blah etc
return h
}
事实上,它似乎你不能做到这一点 。
您只能
return helper(sb:sb, id:id)
你不能
let h = helper(sb:sb, id:id)
return h
有没有解决办法?