我有一个这样的课程:
class mainVC: UIViewController {
class subVC: JSONDecodable {
required init(json: JSON) throws {
self.view.addSubview(myButton)
}
}
}
这是代码的一部分。我想从myButton
向mainVC
添加subVC
,但错误地说:
Value of type 'subVC' has no member 'view'
还有:
Class declaration cannot close over value 'myButton' defined in outer scope
我该怎么做?感谢。
编辑 -
已在myButton
(mainVC
)
subVC
答案 0 :(得分:1)
虽然SubVC包含在mainVC中,但它没有引用mainVC的实例来访问mainVC中的属性和方法,因此您无法直接访问它们。但是如果你想这样做,你可以将一个mainVC实例传递给你的subVC.init(),以便它可以访问它。
class mainVC: UIViewController {
func foo() {print("mainVC.foo")}
class subVC: JSONDecodable {
required init(main:mainVC, json: JSON) throws {
main.view.addSubview(myButton)
main.foo()
}
}
}