将数据从 ViewController 传递到 ChildContainerContainer Swift

Pass Data from ViewController to ChildContainerContainer Swift

我正在使用 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)      
}

Child内VC

 var id: Int?

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

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

    let controller = storyboard?.instantiateViewControllerWithIdentifier("ChildViewController") as YourViewController!
    
    controller.yourID = 100
    
    presentViewController(controller, animated:true, completion:nil)
    

你几乎成功了。 在您的 ChildViewController 的实例化中,您需要转换为 ChildViewController 的 class 而不是 UIViewController,因为 UIViewController 没有 属性.

所以替换

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

来自

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

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

controller.yourId = 100