swift 2.0 prepareForSegue无效

时间:2015-10-31 13:10:58

标签: ios swift class viewcontroller

我正在尝试在我正在制作的应用中使用prepareForSegue。 prepare forSegue必须将类传递给单独的视图控制器。以下是prepareForSegue

中的代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "createPieceSegue" {
        var svc = segue.destinationViewController as DestinationViewController!

        svc.pieceBaseClass = myClass
    }
}

这些是第一个视图控制器继承的超类:

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITableViewDataSource, UITableViewDelegate, UINavigationBarDelegate

目标视图控制器仅从UIViewController继承。我一直得到的错误是:UIViewController is not convertible to'DestinationViewController'因此我无法在两者之间传递数据。这个错误意味着什么,我该如何解决?

2 个答案:

答案 0 :(得分:1)

这意味着您没有在故事板中设置目标VC的自定义类。所以它只是一个UIViewController,而不是你的子类。

答案 1 :(得分:0)

您应该可以使用可选链接。你确定DestinationViewController实际上是UIViewController的子类吗?

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "createPieceSegue" {
    if let svc = segue.destinationViewController as? DestinationViewController {
        svc.pieceBaseClass = myClass
    }
}