我正在尝试通过准备segue
将用户ID传递给容器视图 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "childSegue" {
if let destinationVC = self.childViewControllers.first as? InterestCollectionController {
destinationVC.currentUser = self.currentUser
}
}
}
但是,这不起作用。我的故事板看起来像这样。
storyboard我也尝试过使用segue.destination! InterestCollectionController,也没用。根据我的理解,这是我应该将数据传递到容器视图的方式。感谢任何帮助!
答案 0 :(得分:1)
试试这个而不使用if语句:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "childSegue" {
let destinationVC = segue.destinationViewController as InterestCollectionController
destinationVC.currentUser = self.currentUser
}
}
<强> 1。确保您的segue标识符与故事板标识符匹配。
<强> 2。一旦你在故事板中给出了上述控制器的确切segue,也要验证。
答案 1 :(得分:0)
试试这个
var destinationVC : InterestCollectionController?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "childSegue") {
self.destinationVC = segue.destination as? InterestCollectionController
destinationVC.currentUser = self.currentUser
}
}
答案 2 :(得分:0)
我测试了在调用containerVC的viewDidLoad()
之前没有加载嵌入式视图控制器的视图,换句话说,没有调用prepare()
。
因此,您不能将数据直接传递给prepare()函数内的目标视图控制器。