我认为以下内容会用我的 HomeViewController 填充我的 home 变量
var home = self.parentViewController!.parentViewController! as HomeViewController;
相反,我收到以下编译错误“使用未声明类型的 HomeViewController”,尽管它肯定存在并出现在自动完成弹出窗口中。
最佳答案
XCode6 经常显示错误的错误信息。这是一个实例变量吗?可能是 parentViewController 没有在初始化时设置(事实上它是一个隐式展开的可选强烈暗示这一点)。如果这是在函数中,我会在 if let 语句中执行此操作,以便我们更好地了解正在发生的事情。像这样的东西:
if let homeVC = self.parentViewController?.parentViewController as? HomeViewController {
self.home = homeVC
}
这至少会给我们一个更好的调试机会。连续两个 ! 可能意味着您没有完全尊重这些声明试图告诉您的内容。
关于Swift View Controller 向下转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27112457/