动态创建视图控制器时使用未声明的类型"myClass"



我想获得一个类型分配的 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.")
        }
    }

guard let行上,编译器说"未宣布的可变myclass"。我宣布了几条没有任何错误或警告。为什么会发生此错误?

访问.self之前,您会实例化CollectionViewControllers。因此,您不是在创建类数量,而是创建一系列实例。删除()

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.")
    }
}

最新更新