Nia*_*all 3 ios xcode-storyboard swift
我知道我必须在这里遗漏一些明显的东西,但我似乎无法通过它的实际类型来引用目标View Controller.我已经从头创建了一个新项目来测试它,遵循以下步骤:
将此代码添加到第一个View Controller:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let vc: SecondViewController = segue.destinationViewController
vc.id = "test"
}
Run Code Online (Sandbox Code Playgroud)这会导致错误Cannot convert value of type 'UIViewController' to specified type 'SecondViewController'.我已经尝试了所有我能想到的东西,尝试了所有的segue类型等,但是我没有想法.我知道segue本身正在工作,好像我注释掉它确实调用了第二个View Controller的代码(我甚至在指定中添加了一个标签,以确定).
我是Swift和Storyboard的新手所以这可能是我在这里缺少的一些简单的东西,但任何帮助都将不胜感激!
您应该能够像这样设置值.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if let vc: SecondViewController = segue.destinationViewController as? SecondViewController {
vc.id = "test"
}
}
Run Code Online (Sandbox Code Playgroud)
如果添加其他segue,这也会更安全.
另一种方法是强制执行控制器
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let vc: SecondViewController = segue.destinationViewController as! SecondViewController
vc.id = "test"
}
Run Code Online (Sandbox Code Playgroud)
这个代码应该编译但是如果使用错误的destinationViewController调用它会崩溃,而不是if let如果它不是目标类就不设置目标控制器的id值的选项.
| 归档时间: |
|
| 查看次数: |
2759 次 |
| 最近记录: |