Ios 无法强制转换类型为';TableViewController';至';TableViewController';
我正在尝试将领域数据从自定义单元格传递到DetailTableView控制器Ios 无法强制转换类型为';TableViewController';至';TableViewController';,ios,swift,segue,Ios,Swift,Segue,我正在尝试将领域数据从自定义单元格传递到DetailTableView控制器 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "viewTask" { let nextViewController = segue.destinationViewController as! TaskViewTableViewContro
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "viewTask" {
let nextViewController = segue.destinationViewController as! TaskViewTableViewController
let indexPath : NSIndexPath = self.tableView?.indexPathForSelectedRow as NSIndexPath!
let task = tasks![indexPath.row]
nextViewController.name = task.name
nextViewController.notes = task.notes
nextViewController.date = task.date
nextViewController.timeLength = task.timeLength
}
}
我犯了个错误
无法强制转换“Taskio.TaskListTableViewController”类型的值
(0x10001f028)到“Taskio.TaskViewTableViewController”(0x10001f280)
也尝试过
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "viewTask" {
let nav = segue.destinationViewController as! UINavigationController
let nextViewController = segue.destinationViewController as! TaskViewTableViewController
let indexPath : NSIndexPath = self.tableView?.indexPathForSelectedRow as NSIndexPath!
let task = tasks![indexPath.row]
nextViewController.name = task.name
nextViewController.notes = task.notes
nextViewController.date = task.date
nextViewController.timeLength = task.timeLength
}
}
以及
let nextViewController : TaskViewTableViewController = segue.destinationViewController as! TaskViewTableViewController
编辑
忘记将类名放入tableViewController的故事板中。它正在工作如果我从错误消息中了解到,您正在尝试将TaskListTableViewController强制转换为TaskViewTableViewController 目标是TaskListTableViewController,因此必须将其视为一个
let nextViewController = segue.destinationViewController as! TaskListTableViewController
您的
destinationViewController
似乎不是您期望的类型。您需要检查segue以确保它指向正确的控制器。如果是,则需要重新访问控制器类层次结构
TaskListTableViewController
和TaskViewTableViewController
是否属于同一类层次结构?根据,如果列表视图是任务视图的子类,则只能从TaskListTableViewController
向下转换到TaskViewTableViewController
。仅仅是UITableViewController
的子类是不够的
换句话说,如果您的类层次结构如下所示,您将无法从列表视图向下转换到任务视图:
----> TaskListTableViewController
/
UITableViewController
\
----> TaskViewTableViewController
但如果您的层次结构如下所示,您将能够从一个向下转换到另一个:
UITableViewController -> TaskListTableViewController -> TaskViewTableViewController
关于您第二次尝试强制转换到
UINavigationController
,导航控制器与UITableViewController
完全不相关,因此也无法将其类型强制转换到该类
您可以检查和的继承层次结构。任何类型的转换都需要一个是另一个的子类。你会发现情况并非如此。对我来说,问题是我忘了在情节提要中输入类名
1。如果你能看完我的全部帖子,我试过了。二,。尝试将TaskListTableViewController强制转换为TaskViewTableViewController时未反转,因此目标是TaskViewTableViewController这就是问题所在。您的目标不是TaskViewTableViewController。您的代码不正确。因为TaskList是我要将数据传递给TaskView的控制器。。。我把它修好了,只是忘了把类名放在情节提要控制器上。但无论如何,感谢你的帮助。我的等级制度看起来你的第二个头衔真的有误导性。标题让我相信你们在Swift中遇到了一些有趣的场景。问题正文指出了另一种情况(因为实际的错误消息与您在标题中输入的内容相差甚远)。我面临着类似的问题,而且由于我是Xcode新手,我不理解您的陈述“忘记将类名放入TableViewController的故事板”。请出示密码好吗?算了吧。我想出来了。