为什么Interface Builder不在身份检查器中显示视图控制器子类?

时间:2017-06-26 19:32:00

标签: ios swift xcode

我有一个BaseViewController,我想在子类中继承它。当我这样做子类" TestViewController"不会出现在Xcode界面构建器的类下拉列表中(见下图)。这不可能吗?

class BaseViewController<T: AnyObject> : UIViewController{

    var  test: T?

    override func viewDidLoad() { }

}

class TestViewController : BaseViewController<UIView>{ }

如果我只输入类名,那么我会收到一个运行时错误:

Interface Builder文件中的未知类TestViewController

试过

  • 删除对文件的引用并重新添加
  • 使用文本编辑器编辑故事板并将属性添加到属性&#34; customClass&#34;

1 个答案:

答案 0 :(得分:2)

非常简单:你不能在这里使用泛型类型。原因是UIKit是用ObjC编写的,并且泛型类型对ObjC不是完全可见的。 This answer详细介绍。