我试图从一个视图控制器转到另一个视图控制器,并将数据传递给下一个控制器,但我不断收到此错误:
无法将ViewController类型的值转换为[VC2]
安装程序如下所示:
-
NavigationController
是VC1的初始入口点 -
ViewController1
是collectionViewController
,显示到VC2的segue -
ViewController2
是viewController
,只有一个容器来嵌入VC3 -
ViewController3
是带有静态表和collectionView的tableViewController
.
VC3是我的 destinationViewController
并嵌入在VC2中 . 当我从VC1中选择 collectionViewCell
时,我得到Signal SIGABRT .
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
selectedImage = UIImage(named: wholeArray[indexPath.row]["image"] as! String)!
selectedLabel = wholeArray[indexPath.row]["name"] as? String
self.performSegueWithIdentifier("show", sender: nil)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "show") {
let secondVC: ViewController02 = (segue.destinationViewController as? ViewController02)!
secondVC.image = selectedImage
secondVC.label = selectedLabel
}
}
由于 UITableViewController
是 UIViewController
的子类,因此该代码应该可以正常工作 . 我究竟做错了什么?
** Updated question with type inheritance and exact error message: **
class ViewController01: UICollectionViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
class ViewController02: UIViewController {
class ViewController03: UITableViewController, UICollectionViewDataSource, UICollectionViewDelegate,UIScrollViewDelegate {
class HeaderView: UIView {
2015-10-07 11:26:27.384 UITableViewHeader [45474:3576139] Interface Builder文件中的未知类_TtC17UITableViewHeader14ViewController . 无法将'UITableViewHeader.ViewController02'(0x107a38360)类型的值转换为'UITableViewHeader.ViewController03'(0x107a38a50) .
1 回答
在代码中更改此行
至
或者简单到: