Swift 3 - 实例化视图控制器后没有成员错误

Posted

技术标签:

【中文标题】Swift 3 - 实例化视图控制器后没有成员错误【英文标题】:Swift 3 - No member error after instantiating view controller 【发布时间】:2017-03-03 22:39:50 【问题描述】:

我正在使用 Swift 3、Xcode 8.2。

当我实例化一个视图控制器并尝试访问它的一个变量时,我得到一个:Value of type 'UIViewController' has no member 'someObjectVar'

这是我的代码:

let testVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "testVC") as UIViewController

testVC.someObjectVar = someObject // error is here

self.present(testVC, animated: true, completion: nil)

testVC中的变量是:

var someObjectVar : someObjectType!

我发现 this question 和我有同样的问题,但解决方案对我不起作用,因为我没有做同样的事情......

任何帮助将不胜感激。

【问题讨论】:

您实际上正在与您链接的问题中的提问者做同样的事情,但他们在 cmets 中建议的解决方案实际上没有意义,因为您需要将您的 as UIViewController 更改为 @987654327 @ 而不仅仅是删除它。 【参考方案1】:

您将其投射到 UIViewController 上,它肯定没有该属性。您需要将其转换为您创建的具有与之关联的属性的任何 UIViewController 子类。

【讨论】:

天哪。多么愚蠢的错误!非常感谢您为我指出这一点。

以上是关于Swift 3 - 实例化视图控制器后没有成员错误的主要内容,如果未能解决你的问题,请参考以下文章

Xcode & Swift - 无法从 AppDelegate 实例化另一个视图控制器

Swift - 在 AppDelegate 中实例化视图控制器

Xcode Swift 2 变量声明(实例成员不能在类型视图控制器上使用)

使用自定义初始化程序 swift 以编程方式实例化和推送视图控制器

“MKMapItem”类型的值在 Swift 3 中没有成员“网站”

使用标签栏和导航实例化深度视图控制器