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的类扩展