视图控制器之间的通信,无法将数据传递到第二个视图控制器的出口
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"
}
两个视图控制器:
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"
}