UIViewController
をnibからロードし、その動的型を返したいとします。 私は見つけた機能をほとんど試していませんでしたが、常に戻り値の型はUIViewController
です。 ペン先名がクラス名AlertVC
と等しいことを2回確認しました。 ファイルのオーナーをAlertVC
に設定しました。Swift - インスタンス化Nibから常に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'