我想从另一个班级更改@IBOutlet
的文本值
我如何将@IBOutlet
设置为静态?
以下代码不起作用:
@IBOutlet internal static var boxGender: UIView!
答案 0 :(得分:0)
IBOutlet不能为静态。 (编译器将给出错误Only instance properties can be declared @IBOutlet
)
class SomeViewWithALabel: UIView {
@IBOutlet weak var myLabel: UILabel!
// ... methods and properties
}
class MyController: UIViewController {
@IBOutlet weak var someViewWithALabel: SomeViewWithALabel!
//...
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
someViewWithALabel?.myLabel.text == "Custom text"
}
}
答案 1 :(得分:0)
您可以设置控制器的静态值并从中获取所有值。但这不是到达网点的正确方法。您应该将控制器传递给其他类实例。
class Test: UIViewController {
var boxGender: UIView!
static var instance: Test?
override func viewDidLoad() {
super.viewDidLoad()
Test.instance = self
}
}
Test.instance?.boxGender