【发布时间】:2019-05-18 12:11:40
【问题描述】:
我的目标是将我的 eventId 从我的父视图控制器检索到子控制器。但似乎我的子视图控制器在父视图控制器之前被实例化。如何从我的子控制器获取该 eventId?谢谢
我正在将数据从我的 EventsMainController 传递到 EventsDetails(Parent Controller)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "eventDetails" {
let DestViewController : EventDetailsViewController = segue.destination as! EventDetailsViewController
DestViewController.eventId = myEvents[index].uuid
}
}
然后在我的 EventsDetail 控制器中,我有我的变量,我可以在其中检索它。 EventsDetails 是我的父控制器,其中有我的子控制器。
var eventId = String()
在我的子控制器中,我使用它来检索 id。它返回 nil。
var eventId = String()
override func viewDidAppear(_ animated: Bool) {
print(eventId)
}
【问题讨论】:
-
你确定你的segue标识符是“eventDetails”吗?就这么过去了? DestViewController.eventId = myEvents[index].uuid
-
您似乎在谈论三个控制器:
EventsMainController、EventsDetails和一个子控制器。后者是什么? -
@iDevid 是的,当我使用 segue 标识符“evenDetails”时,我在 EventDetails 中获取了我需要的所有信息
-
@vadian 子控制器被称为 InvitedViewController。 EventDetails 是父级。我将数据从 EventsMain 传递给 Event Details,然后传递给 InvitedController (child)
-
那么关键部分是将数据从Details传递给Invited的代码,而不是问题中的代码