我正在尝试在我正在制作的应用程序中使用prepareForSegue
。prepare for Segue必须将一个类传递给一个单独的视图控制器。这是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'
因此我无法在两者之间传递数据。这个错误意味着什么?我该如何修复它?
这意味着您尚未在故事板中设置目标VC的自定义类。所以它只是一个UIViewController,而不是你的子类。
您应该能够使用可选的链接。您是否确定DestinationViewController实际上是UIViewController的子类?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "createPieceSegue" {
if let svc = segue.destinationViewController as? DestinationViewController {
svc.pieceBaseClass = myClass
}
}