首页 > 解决方案 > 尝试 pushViewController 时“无法转换类型的值”

问题描述

我有两个类MenuVCCategoryVCCategorySubclassVC(这是一个子类,CategoryVC我用它来填充数据)。我还有一个CategoryVC带有 Storyboard ID的 Storyboard categoryID

didSelectRowAt indexPath我试图将视图控制器从推MenuVCCategorySubclassVC

let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "categoryID") as! CategorySubclassVC
self.navigationController?.pushViewController(secondViewController, animated: true)

我收到一个错误:无法将“My_App.CategoryVC”类型的值转换为“My_App.CategorySubclassVC”。

是否可以以这种方式推送视图控制器?如果我将目的地更改为 CategoryVC 一切正常。子类 (CategorySubclassVC) 出现问题。

标签: swiftstoryboard

解决方案


我找到了一个适合我的解决方案。

let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "categoryID") as! CategoryVC
object_setClass(secondViewController, CategorySubclassVC)
self.navigationController?.pushViewController(secondViewController, animated: true)

推荐阅读