新しいインスタンスを初期化するのに使用できるUIViewController
という拡張を作成しようとしています。私のプロジェクトの各View Controllerには、対応するストーリーボードがあります。一般的なUViewController初期設定の作成
すなわち
EditSomethingViewController.swift
EditSomethingViewController.storyboard
これは私がこれまで持っているものです。
extension UIViewController {
static func initalize() -> UIViewController? {
let name = String(self)
let storyboard = UIStoryboard(name: name, bundle: nil)
return storyboard.instantiateInitialViewController()
}
}
しかしこれは、私はそれを使用する場合、私はまだ応答をキャストしなければならないことを意味します。
すなわち
if let viewController = EditSomethingViewController.initalize() as? EditSomethingViewController {
// do something with view controller here
}
それは私が応答をキャストする必要がないことを意味し、このような方法で拡張機能を作成することは可能ですか?
p.s. Swift 2.3で書かれた古いプロジェクトに取り組むことで、サポートされている回答に感謝します。
は、あなただけの関数の中にそれをキャストし、 'EditSomethingViewControllerを返すことができます'代わりに? –