0
私はより安全なインスタンス化ビューコントローラUIStoryboard延長
protocol IdentifierType {
typealias Identifier: RawRepresentable
}
extension IdentifierType where Self: UIStoryboard, Identifier.RawValue == String {
func instantiateViewControllerWithIdentifier(identifier:Identifier) -> UIViewController {
return self.instantiateViewControllerWithIdentifier(identifier.rawValue)
}
}
するために、迅速でストーリーボードの拡張機能を作成しようとすることだし、それはコンパイル時にエラーをすることはありません。しかし、私がそれを実装しようとすると:
extension UIStoryboard : IdentifierType {
enum Identifier: String {
case MainViewController = "MAIN_VIEW_CONTROLLER"
case ContactUsViewController = "CONTACT_US_VIEW_CONTROLLER"
case AboutViewController = "ABOUT_VIEW_CONTROLLER"
}
}
コンパイル時エラーが発生します。
ありがとうございます。それはとても簡単です。それは私の場合に適用することができます。私はUIImageとUIViewControllersでsegueIdentifierとして実装しているので、識別子プロトコルを作成します。 –