我正在使用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。
答案 0 :(得分:3)
在实例化后传递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