UIViewController 的 Swift 子类化子类

Posted

技术标签:

【中文标题】UIViewController 的 Swift 子类化子类【英文标题】:Swift Subclassing Subclasses of UIViewController 【发布时间】:2014-06-05 08:53:20 【问题描述】:

我在 Xcode 中创建了示例 Master-Detail Application,我正在尝试使用以下方法设置 MasterViewController(比如 UltimateViewController)的子视图控制器:

class UltimateViewController: MasterViewController 

这会编译,但如果我打开故事板,我无法将视图控制器的类名更改(自动完成)为UltimateViewController。如果我手动输入名称,我将无法连接任何现有的@IBOutlets@IBActions。任何预先存在的插座都会显示警告指示器,并且应用程序在启动时崩溃。如何进行这种类型的继承?

【问题讨论】:

我能够做到这一点。你得到什么错误?可能会退出并重新启动 Xcode 将解决此问题 @Anil 我收到了this class is not key value coding-compliant for the key mainCollectionView(我的 IBOutlets 之一)。 你如何声明你的mainCollectionView ... 或者它可能是一个旧的、狂野的插座,不知何故没有被删除并且仍然存在于 IB 文件中? 【参考方案1】:

StoryBoard 有时不会在您创建新项目文件时重新索引项目文件,因此当您想要更改 Storyboard 中的子类时,它们无法选择。对我来说,我通常清理项目,关闭 Xcode,启动 XCode,构建,现在可以使用该类。

您还可以尝试删除项目的派生数据,以便对项目文件进行总体重新索引。最后验证文件的目标是否正确。

最后确保您使用的是 xcode 6 :)

【讨论】:

以上是关于UIViewController 的 Swift 子类化子类的主要内容,如果未能解决你的问题,请参考以下文章

如何比较 Swift 3 中的 UIViewController?

Swift 中的 UIViewcontroller 实例 [重复]

在 Swift 中动态创建 uiviewcontroller

swift Swift - UIViewController的类扩展

Swift - 在 UIViewController 中防止返回事件

用 Swift 初始化 UIViewController 的子类?