我一直在寻找解决方案的每一个地方,但我找不到它,当我看到我的代码和其他时,它看起来应该看起来。
var detailVC = segue.destinationViewController as DetailVC;
似乎只是在线上说
{{1}}
DetailVC收到错误,我不知道要声明这个类型,我也没有找到任何人在这段代码中这样做。我真的想知道要声明它的类型。
我正在使用ios7.1和8+这个应用程序与xcode 6.x最新稳定版
答案 0 :(得分:3)
答案 1 :(得分:1)
您需要强制演员:
var detailVC = segue.destinationViewController as! DetailVC
注意!在as之后。
或者你可以这样做:
if let detailVC = segue.destinationViewController as? DetailVC {
detailVC.toPass = "help"
}
注意?在as之后。
segue.destinationViewController返回一个UIViewController。你正在做什么" as"将UIViewController向下转换为UIViewController的子类。 Swift编译器无法确定类与其子类之间的向下转换是否成功。如果你绝对确定地知道了destinationViewController的类型,你可以强制使用as!进行向下转换。但是,如果downcast在运行时失败,您的应用程序将崩溃。更安全的选择是使用可选绑定,如果与?一起使用。有关详细信息,请参阅Apple Swift Blog
上的内容