Interface Builder文件中的未知类 - Xcode 8 Swift 3

时间:2017-01-25 19:09:33

标签: xcode autolayout swift3 interface-builder xcode8

我遇到了以下错误

  

Interface Builder文件中的未知类TutorialViewController.swift。

将默认文件Main.storyboardViewController.swift分别重命名为TutorialView.storyboardTutorialViewController.swift所需的命名约定。

我通过在Xcode中物理重命名文件名并更新TutorialViewController.swift的类名来重命名文件。

重命名后,我尝试通过将故事板的TutorialView.storyboard更新为TutorialViewController.swift来解决从Custom ClassTutorialViewController的链接,这是正确的方法。完成链接。这实际上导致了上述错误。

免责声明:我知道这与this SO post类似,但我想提出这个问题并回答我的解决方案,因为该帖子没有接受答案。我希望我可以一直拯救别人,让我想出这个。

3 个答案:

答案 0 :(得分:5)

检查在自定义视图的界面构建器中是否选择了Inherit from Target。这实际上对我有用。

如果您的视图恰好位于被复制到其他目标的.bundle文件中,那么您需要明确设置模块目标。

如果您有多个目标,请检查是否为所有目标选择了自定义类,或者至少为您正在运行的目标选择了自定义类。

答案 1 :(得分:2)

最终解决我的问题的是创建一个新项目并查看原始Main.storyboard如何在XML中引用其.swift文件,看起来像这样

                <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="Sandbox" customModuleProvider="target" sceneMemberID="viewController">

其中重要方面为customClass="ViewController"

通过这样做,并手动编辑我的项目TutorialView.storyboard并添加customClass="TutorialViewController我解决了错误。

答案 2 :(得分:1)

您也可以尝试再次选择CustomClass - Class到您的类名并点击返回。它将有助于更新与viewController关联的类名。