我是Swift和iOS开发的新手。我目前有2个ViewControllers,第一个是button,第二个是label。我已经将第一个button连接到第二个ViewController,过渡工作正常。

现在,当我尝试更改标签的文本时,出现错误:

致命错误:展开Optional时意外发现nil




在这里,您可以在第一个ViewController中找到我的prepare函数:

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "mySegue" {
            let vc = segue.destination as! SecondViewController
            vc.secondResultLabel.text = "Testing"
         }
    }

难道第二个ViewController中的标签受到某种保护吗?

谢谢您的帮助

最佳答案

由于尚未创建String,因此您需要将SecondViewController传递给UILabel而不是直接进行设置。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "mySegue" {
        let vc = segue.destination as! SecondViewController
        vc.secondResultLabelText = "Testing"
    }
}

并在SecondViewController viewDidLoad方法中将UILabel设置为字符串
var secondResultLabelText : String!

override func viewDidLoad() {

    secondResultLabelText.text = secondResultLabelText
}

关于ios - 单击第一个ViewController中的按钮后更改第二个ViewController的标签文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40765272/

10-10 11:50