我想将textfields值传递给另一个viewcontroller。我尝试使用以下代码但没有成功:
Frist我试过了:
var testval = "est val here lalla"
let viewController = BookingConfirmationController(nibName: "BConController", bundle: nil)
viewController.testval = "test test"
self.presentViewController(viewController, animated: true, completion: nil)
当我运行此代码时,我可以传递变量,因为期望位viewController未显示。相反,我得到了黑屏。我发现这个nibName是旧的用法,不再使用了。我通过storyborad创建了viewContorllers。
然后我尝试了以下代码:
var storyboard: UIStoryboard = UIStoryboard (name: "Main", bundle: nil)
var testval = " test"
var vc: UIViewController = storyboard.instantiateViewControllerWithIdentifier("BConControllerID") as UIViewController
vc.testval = testval
self.presentViewController(vc ,animated: true, completion: nil )
我在这里遇到错误
UIViewController没有名为'festival'的成员
如果没有变量,我可以成功打开下一个viewController。
我还在学习SWIFT,任何人都可以帮我打开下一个视图控制器并传递变量
答案 0 :(得分:1)
为了拥有自定义参数,您应该拥有UIViewController的子类。要从另一个类访问它,您必须将UIViewController的实例强制转换为您创建的子类。在这一行
var vc: UIViewController = storyboard.instantiateViewControllerWithIdentifier("BConControllerID") as UIViewController
你应该像
那样var vc: myViewController = storyboard.instantiateViewControllerWithIdentifier("BConControllerID") as myViewController
其中myViewController是您拥有的自定义子类,以便访问它的属性。
另外作为旁注,你要创建的只是一个UIViewController,你不需要显式地将其转换为instantiateViewControllerWithIdentifier将返回一个UIViewController