よりクリーンな方法を提案したいと思います。これは、複数のストーリーボードがある場合に役立ちます
1.すべてのストーリーボードで構造を作成する
struct Storyboard {
static let main = "Main"
static let login = "login"
static let profile = "profile"
static let home = "home"
}
2.このようなUIStoryboard拡張を作成します
extension UIStoryboard {
@nonobjc class var main: UIStoryboard {
return UIStoryboard(name: Storyboard.main, bundle: nil)
}
@nonobjc class var journey: UIStoryboard {
return UIStoryboard(name: Storyboard.login, bundle: nil)
}
@nonobjc class var quiz: UIStoryboard {
return UIStoryboard(name: Storyboard.profile, bundle: nil)
}
@nonobjc class var home: UIStoryboard {
return UIStoryboard(name: Storyboard.home, bundle: nil)
}
}
ストーリーボード識別子をクラス名として指定し、以下のコードを使用してインスタンス化します
let loginVc = UIStoryboard.login.instantiateViewController(withIdentifier: "\(LoginViewController.self)") as! LoginViewController
;
!;)詳しく説明していただけませんas UIViewController
か?なぜそれが必要なのですか?