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

问题描述 投票:2回答:2

我正在使用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
ios swift
2个回答
4
投票

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

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

enter image description here


1
投票

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

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.