我想从笔尖加载UIViewController
,并返回它的动态类型。 我尝试了一些我发现的功能,但总是返回类型UIViewController
。 我检查了两次,我的笔尖名称等于班级名称AlertVC
。 我将该文件的笔尖所有者设置为AlertVC
。Swift - 实例化从笔尖总是返回UIViewController类型,而不是动态类型
我用它来从笔尖加载的功能:
extension UIViewController {
class func loadMeFromXib<T: UIViewController>(_ senderVC:UIViewController, prepareForVC:((T) -> T?)? = nil) {
var viewController:T = T.instantiateFromNib()
// viewController type is UIViewController instead AlertVC
}
static func instantiateFromNib() -> Self {
func instantiateFromNib<T: UIViewController>(_ viewType: T.Type) -> T {
return T.init(nibName: String(describing: T.self), bundle: nil)
}
return instantiateFromNib(self)
}
}
也试过:
class func loadMeFromNib<T: UIViewController>() -> T {
return T(nibName: String(describing: self), bundle: nil)
}
但我同样的结果总是 - UIViewController中。
使用方法如下:
AlertVC.loadMeFromXib(senderVC!)
我也得到一个调试错误:use of undeclared type 'T'