ios - 从 Swift 框架加载 ViewController

标签 ios swift uiviewcontroller ios-frameworks

我正在创建一个 Swift 框架,它有 ABC.Storyboard 和一个 ViewController。我已将所有 UIView 引用到 MyViewController,它也存在于 Framework 中。 当我将这个框架添加到我的应用程序并尝试加载这个 MyViewController 时,我得到 setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myImageView错误。

最佳答案

希特什,

只有当您的 Storyboard具有关于其 View 的 IBOutlets 的陈旧信息时才会发生这种情况。

这是怎么发生的?

您的 Storyboard 的 ViewController (MyViewController) 中必须有一个 ImageView。在您开发框架的过程中,有时您已将名称为 myImageView 的 IBOutlet 拖到所有者类(假设为 MyViewController.swift)

稍后,您一定是从 ownerClass (MyViewController.swift) 中删除了名为 myImageView 的属性,并且忘记从 Storyboard 中删除对该属性的引用。

发生了什么?

您的 Storyboard 的 ViewController 仍然假设其 ownerClass 中有一个名为 myImageView 的属性,并且它的组件 IBOutlet 是一个 ImageView

因此,当加载 View 时,它会查找该属性,当找不到属性时,它会抛出错误,表明该类不符合键 myImageView 的编码,因为它无法找到名为 myImageView 的属性。

解决方案

打开你的 Storyboard,选择 MyViewController 转到连接检查器(单击右侧的最后一个选项,它将向你显示 ViewController 中每个组件的 IBOutlets)选择你的 ImageView 你会发现这样的东西, enter image description here

单击 (myImageView) - (x MyViewController) 前面的小“x”符号以取消它与已删除属性引用的链接:)清理构建并重新运行:)

Ta daaa 问题解决了 :) 编码愉快 :)

关于ios - 从 Swift 框架加载 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650702/

相关文章:

ios - 如何将 AppClip 添加到 Siri 的附近建议?

ios - 如何正确切换 View

ios - Xcode 5.1.1 不重新编译子项目

ios - XCode 8 Playground 执行失败,无法查找符号

swift - 检查场景是否包含任何具有名称的节点

iphone - 如何以编程方式刷新 UIViewController?

ios - 在 Apple Maps 中绘制 GeoJson 作为叠加层

ios - View Controller 、依赖注入(inject)和 init/viewDidLoad

ios - 重置 NavigationController 上的 rootViewController

swift - 如何在 placeholderView 的 ViewController 中加载 nib