将数据从ViewController传递给ChildContainerContainer Swift

时间:2015-10-08 07:43:49

标签: ios swift uicontainerview

我正在使用Swift。我有2个ViewControllers a)ParentVC& b)ChildVC。当我实例化chidVC时,我想将一些数据从Parent传递给Child。不确定如何。以下是代码

ParentVC

override func viewDidLoad() {
    let controller = storyboard?.instantiateViewControllerWithIdentifier("ChildViewController") as UIViewController!

    //I want to pass some value - For example: controller.id = 3

    addChildViewController(controller)
    containerView.addSubview(controller.view)
    didMoveToParentViewController(controller)      
}

在儿童VC中

 var id: Int?

P.S:我肯定想使用“instantiateViewControllerWithIdentifier”。我见过Passing Data Between View Controllers,但是在ObjC中,我正在寻找Swift中的代码,因为我不知道如何翻译它。我也不想使用prepareForSegue。

2 个答案:

答案 0 :(得分:3)

  • 在子视图控制器中定义yourID。
  • 在实例化后传递ID

    3pxpx

答案 1 :(得分:1)

你几乎拥有它。 在你的ChildViewController的实例化中,你需要强制转换到你的ChildViewController的类而不是UIViewController,因为UIViewController没有属性。

所以替换

let controller = storyboard?.instantiateViewControllerWithIdentifier("ChildViewController") as UIViewController!

通过

let controller = storyboard?.instantiateViewControllerWithIdentifier("ChildViewController") as YourChildViewControllerClass!

编辑:
现在你可以设置像truongky回答的属性:

controller.yourId = 100