swift segue unclared类型打破了代码

时间:2015-08-19 19:54:20

标签: ios swift segue

我一直在寻找解决方案的每一个地方,但我找不到它,当我看到我的代码和其他时,它看起来应该看起来。

var detailVC = segue.destinationViewController as DetailVC;

似乎只是在线上说

{{1}}

DetailVC收到错误,我不知道要声明这个类型,我也没有找到任何人在这段代码中这样做。我真的想知道要声明它的类型。

我正在使用ios7.1和8+这个应用程序与xcode 6.x最新稳定版

2 个答案:

答案 0 :(得分:3)

首先应该发布错误消息,然后确保在viewController的类中选择了DetailVC

答案 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

上的内容