2017-02-28 5 views
0

myClassの値をタイプに割り当ててストーリーボードからインスタンス化したいと考えています。コンパイラは "宣言されていない変数MyClassの" と言うguard letライン上表示コントローラーを動的に作成するときに宣言されていない型 "myClass"を使用

func detailViewControllerClasses(index: Int) -> UIViewController { 
     let myClass = [CollectionViewController().self, CollectionViewController().self, CollectionViewController().self, CollectionViewController().self][index] 


     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     guard let vc = storyboard.instantiateViewController(withIdentifier: "CollectionViewController") as? myClass else { 
      fatalError("Unable to instatiate a ViewController from the storyboard.") 
     } 
    } 

。私はエラーや警告なしでそれをいくつかの行を宣言した。このエラーはなぜ発生しますか?

答えて

1

CollectionViewControllersをインスタンス化してから.selfにアクセスしてください。したがって、クラスの配列ではなくインスタンスの配列を作成しています。 ()

func detailViewControllerClasses(index: Int) -> UIViewController { 
    let myClass = [CollectionViewController.self, CollectionViewController.self, CollectionViewController.self, CollectionViewController.self][index] 


    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    guard let vc = storyboard.instantiateViewController(withIdentifier: "CollectionViewController") as? myClass else { 
     fatalError("Unable to instatiate a ViewController from the storyboard.") 
    } 
} 
関連する問題