Swift, creando un UIViewController genérico

Estoy tratando de crear una class como esta:

class MyClass<T:UIView>: UIViewController{ override init() { super.init(nibName: nil, bundle: nil); } requinetworking init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func loadView() { self.view = T(); println("loadView") } override func viewDidLoad() { super.viewDidLoad(); println("viewDidLoad") } } 

Cuando quiero usar mi class así:

 self.navigationController?.pushViewController(MyClass<UIView>(), animated: true) 

¡Los methods viewDidLoad y loadView nunca se llaman!

¿Sabes por qué y si hay alguna manera de hacer lo que quiero?

Gracias por adelantado.

Como se menciona en los comentarios de OP, la class genérica no puede representarse correctamente en Objective-C.

La solución sería utilizar la class como propiedad. algo como esto:

 class MyClass: UIViewController{ let viewCls:UIView.Type init(viewCls:UIView.Type = UIView.self) { self.viewCls = viewCls super.init(nibName: nil, bundle: nil); } requinetworking init(coder aDecoder: NSCoder) { self.viewCls = UIView.self super.init(coder: aDecoder) } override func loadView() { self.view = viewCls(); println("loadView") } override func viewDidLoad() { super.viewDidLoad(); println("viewDidLoad") } } // and then self.navigationController?.pushViewController(MyClass(viewCls: UIView.self), animated: true)