斯威夫特施法失败

时间:2014-06-11 09:11:41

标签: swift

所以我在Swift中编写这个segue方法,但是当我打开控制器时,它总是没有。如果没有as?,它就会在运行时失败。怎么回事?

override func prepareForSegue(segue : UIStoryboardSegue!, sender: AnyObject!) {
    if(segue.identifier == "showCoursesSegue") {
        var controller = segue.destinationViewController as? EditViewController
        controller!.test = true 
    }

}

3 个答案:

答案 0 :(得分:1)

这对我准备segue很好。实际上尝试将控制器的类型设置为EditViewController并删除?

var dst: NoteViewController = segue.destinationViewController as NoteViewController

答案 1 :(得分:1)

以Swift方式做到这一点!

func prepareForSegue(segue : UIStoryboardSegue!, sender: AnyObject!) {
    switch segue.identifier! {
    case "showCoursesSegue":
        switch segue.destinationViewController {
        case let controller as EditViewController:
            controller.test = true
        default:
            println("segue.destinationViewController is \(segue.destinationViewController)")
        }
    default:
        println("segue.identifier is \(segue.identifier)")
    }   
}

答案 2 :(得分:0)

这里的问题是在IB中,ViewController还没有被设置为自定义类。我发布了一张图片,但没有足够的代表。