sal*_*eri 1 xcode uiviewcontroller uistoryboard swift
我使用此代码转到新故事板,并将变量X传递到新故事板中的viewController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall")
homeViewController.myVar = "x"
self.present(homeViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
但是我得到这个错误:
类型“ UIViewController”的值没有成员“ myVar”
在这一行:
let homeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall")
Run Code Online (Sandbox Code Playgroud)
您说的是“从情节提要中实例化视图控制器,并推断其类型为UIViewController”。但是,您需要将其指定为ViewControllerCall。
您可以通过类型转换-添加来实现as? ViewControllerCall。(或者as! ViewControllerCall,如果您不想使用该if let子句)。
您的代码应如下所示:
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
if let homeViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall") as? ViewControllerCall {
homeViewController.myVar = "x"
self.present(homeViewController, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
要么
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall") as! ViewControllerCall
homeViewController.myVar = "x"
self.present(homeViewController, animated: true)
Run Code Online (Sandbox Code Playgroud)
请注意,以as!第二种方式使用,如果带有标识符的视图控制器ViewControllerCall的类型不是ViewControllerCall ,它将使您的应用程序崩溃。
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |