Swift でビュー コントローラーの階層をたどり、特定のクラスを見つけたいと思います。コードは次のとおりです。
extension UIViewController{
func traverseAndFindClass<T : UIViewController>() -> UIViewController?{
var parentController = self.parentViewController as? T?
^
|
|
// Error: Could not find a user-defined conversion from type 'UIViewController?' to type 'UIViewController'
while(parentController != nil){
parentController = parentController!.parentViewController
}
return parentController
}
}
これで、parentViewController プロパティがオプションの UIViewController を返すことはわかっていますが、神の名の下に Generic をオプションの型にする方法がわかりません。たぶん、ある種のwhere句を使用しますか?