尝试将数据传递到容器视图,而segue无法正常工作

时间:2017-05-02 12:54:44

标签: ios swift segue uicontainerview

我正在尝试通过准备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,也没用。根据我的理解,这是我应该将数据传递到容器视图的方式。感谢任何帮助!

3 个答案:

答案 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()函数内的目标视图控制器。