单击其他类上的按钮时(Uiviewcontroller)更改ContainerView中的Label文本

时间:2018-07-19 04:12:29

标签: ios swift mobile-development

在主应用程序屏幕上,我的//Append new user script to head var goatPuzzleSetupCode= console.log("Script goatPuzzleSetupCode"); var genericSetupCode= console.log("Script genericSetupCode"); var userCode= console.log("Script userCode"); var resultToJSONCode= console.log("Script resultToJSONCode"); var userProg = document.createElement('script'); var script="//cdnjs.cloudflare.com/ajax/libs/less.js/1.3.3/less.min.js"; //userProg.addEventListener('load', test, false); userProg.onload = function(script) { console.log("Script loaded! 1"+script) test(); }; userProg.src=script; userProg.text = [goatPuzzleSetupCode, genericSetupCode, userCode, resultToJSONCode].join('\n') document.head.appendChild(userProg); var test = function() { console.log("Script loaded! 2") }很小containerView。我在主UILabel上获得了UIButton。我想通过单击UIViewController中的按钮来更改属于label类的containerView的文本。 我尝试通过委派取得成功,但由于某种原因,我遇到了一个错误(展开可选)...

我尝试使用协议实现,ContView中的bud方法“ addText”不起作用((((((((

UIViewController

///////////////////////////////////////////////// //////////////////////

    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)
}

1 个答案:

答案 0 :(得分:0)

首先在您的视图控制器中创建一个全局变量

private var viewController: YourVC?

然后为您的容器视图提供一个标识符并进行跟踪

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "yourviewcontroller Segue identifiew" {  //your container view segue identifier
        viewController = segue.destination as? SelectedImageVC
    }
}

现在您可以viewController来访问容器视图控制器中的标签了,例如

if let controller = viewController {
    controller.yourlabel.text = "text you want"
}