视图控制器之间的通信,无法将数据传递到第二个视图控制器的出口

Communication between view controllers, not able to pass on the data to the outlet of second view controller

两个视图控制器:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (sender as! cell1).name.text == "ww"{
            let s = segue.destination as! DetailViewController
            s.detail?.text = "wwwwwwwwwww"
        }
    }

我是编码新手。我在这里尝试的是在视图控制器之间进行通信。出于某种原因,我无法在第二个视图控制器

的标签中显示 wwwwwwwwwww

在 prepare 函数中,视图尚未从情节提要中加载,因此 DetailViewController 的出口仍然为零。 在准备时可用的 DetailViewController 中创建一个 public 变量,然后在 DetailViewController 的 viewDidLoad 方法中,您可以将标签的文本设置为该变量的内容。

class DetailViewController: UIViewController {

   var text: String?

   override function viewDidLoad() {
       super.viewDidLoad()
       label.text = text
   }
}

然后在您的列表 viewcontroller 中设置详细信息 属性 的文本 vc:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard (sender as! cell1).name.text == "ww",
        let detailVc = segue.destination as? DetailViewController
        else { return }

    detailVc.text = "wwwwwwwwwww"
}