在storyboard.instantiateViewController`之后无法向下转换

时间:2018-03-24 06:58:25

标签: ios swift

我正在使用storyboard.instantiateViewController来启动TableViewController,但是当我尝试向下转换它时,我收到一个错误:

Could not cast value of type 'UITableViewController' (0x109b30de8) to 'PresenceTableViewController' (0x1060329f0).

我的类PresenceTableViewController是UITableViewController的子类,故事板正确分配了VC类。 enter image description here

那为什么会失败?

presenceViewController = storyboard.instantiateViewController(withIdentifier: "userPresenceTable") as! PresenceTableViewController

2 个答案:

答案 0 :(得分:4)

我尝试了“无法转换值...”的可能情况,并且它对所有情况都很好,然后在一个情况下,当模块未从目标继承时,我生成了此错误。这解决了我的问题。

  

只需在故事板上重新输入类类型,它就会自动选择“从目标继承模块”。这可以解决您的问题。

enter image description here

答案 1 :(得分:1)

还要确保您要使用的控制器必须嵌入导航栏

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

enter image description here