将数据从 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
我正在使用 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