我在UiView.xib文件中有我的UIButton Outlet,我想创建一个动作/函数,它将改变来自另一个UIView.xib文件的UILablel Outlet的文本。
我已经在我的ViewController文件中添加了两个UIViews,但我不知道如何创建函数来访问不同XIB文件中的元素并在函数中调用它们。
这是我的ViewController文件的代码
override func viewDidLoad() {
super.viewDidLoad()
// UIView 1 (XIB File 1)
if let addUIView1 = Bundle.main.loadNibNamed("totalOz", owner: self, options: nil)?.first as? totalOZVC {
self.view.addSubview(addUIView1)
// Button 120ml function
addUIView1.button120ml.addTarget(self, action: #selector(ViewController.buttonSelectGlassSize(sender:)), for: .touchUpInside)
}
// UIView2 (XIB File 2)
if let addUIView2 = Bundle.main.loadNibNamed("GlassSelector", owner: self, options: nil)?.first as? GlassSelectorVC {
self.view.addSubview(addUIView2)
addUIView2.labelGlassSelect.textColor = UIColor.white
addUIView2.labelGlassSelect.text = "Select the size of Glass"
}
// Creating a function to call the Outlets from the XIB files
@objc func buttonSelectGlassSize(sender: UIButton) {
// Change the text of labelGlassSelect when user press the button 120mL
}
对不起我对Swift还是个新手,请你帮帮我吧。
非常感谢你!
答案 0 :(得分:0)
制作了addUIView1
和addUIView2
的全局实例。在buttonSelectGlassSize
方法中,访问addUIView2并更新label的文本。目前您还没有全局实例,因此您无法更新标签的文本。
答案 1 :(得分:0)
要将来自不同xib的函数调用回控制器,请使用自定义委托方法。以下是教程
Implementing delegates in Swift, step by step.
要从控制器更新其他类数据,请在其他类中创建内部函数,然后从控制器中调用它们。