两个视图控制器:
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
答案 0 :(得分:0)
在准备功能中,视图尚未从故事板加载,因此DetailViewController的出口仍为零。 在DetailViewController中创建一个公共变量,该变量将在prepare中可用,然后在DetailViewController的viewDidLoad方法中,您可以将标签的文本设置为该变量的内容。
class DetailViewController: UIViewController {
var text: String?
override function viewDidLoad() {
super.viewDidLoad()
label.text = text
}
}
然后在列表viewcontroller中设置detail 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"
}