【问题标题】:Change Label text in a ContainerView on click of a button from other class (Uiviewcontroller)单击另一个类(Uiviewcontroller)中的按钮时更改容器视图中的标签文本
【发布时间】: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


【解决方案1】:

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

private var viewController: YourVC?

然后给您的容器视图 segue 一个标识符并执行以下操作

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 访问您的 containerview 控制器中的标签,例如

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

【讨论】:

  • 兄弟,你的代码不起作用......或者我做错了什么。
  • 兄弟,您的代码对我没有帮助,但我接受您的回答。 TY
猜你喜欢
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
相关资源
最近更新 更多