我有这样一个班:
class mainVC: UIViewController {
class subVC: JSONDecodable {
required init(json: JSON) throws {
self.view.addSubview(myButton)
}
}
}
这是代码的一部分。我想将
myButton
从mainVC
添加到subVC
中,但是is给出了错误的说法:Value of type 'subVC' has no member 'view'
以及:
Class declaration cannot close over value 'myButton' defined in outer scope
我该怎么做?谢谢。
编辑-
myButton
已在mainVC
内声明(在subVC
外) 最佳答案
尽管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()
}
}
}
关于ios - 从子类更改主类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46503427/