【发布时间】:2018-07-19 04:12:29
【问题描述】:
我在主应用屏幕上获得了带有UILabel 的小containerView。我在主要的UIViewController 上得到了UIButton。我想通过单击UIViewController 中的按钮来更改属于containerView 类的label 的文本。
我尝试通过委托来实现,但由于某种原因我出错了(展开可选)...
我尝试使用协议,ContView中的bud方法“addText”不起作用((((((
class ViewController: UIViewController {
var delegate: DelegateProtocol?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func button(_ sender: Any) {
delegate?.addText(String2: "123")
}}
/////////////////////////////////////// //////////////////////
protocol DelegateProtocol {
func addText(String2: String)
}
/////////////////////////////////////// /////////////////////
class ContViewController: UIViewController, DelegateProtocol {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "con" {
let vc = segue.destination as! ViewController
vc.delegate = self
}
}
func addText(String2: String) {
label.text = String2
}
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
}
【问题讨论】:
-
显示一些代码和你得到的错误。
-
错误是方法 addText 没有在 ContViewController 中从 ViewController 类中的按钮 touchUp 执行...
标签: ios swift mobile-development