无法将'UIBarButtonItem'类型的值转换为'UITableViewCell'

时间:2015-11-20 21:12:13

标签: ios swift uitableview segue

有没有人遇到以下错误? 我试图从uitableviewcontroller导航到uiviewcontroller。 uitableviewcontroller使用NSFetchedResultsController。 应用程序在segue中打破uiviewcontroller(命名为:TaskDetailViewController)

Repo with Complete Code

错误:无法将'UIBarButtonItem'(0x1a0d22b50)类型的值转换为'UITableViewCell'(0x1a0d224c0)。 (lldb)

故事板: storyBoard

Repo with Complete Code

应用中断的代码:

    if segue.identifier == "editTask"
    {
        let cell        = sender as! UITableViewCell
        let indexPath   = tableView.indexPathForCell(cell)

        let taskController:TaskDetailViewController = segue.destinationViewController as! TaskDetailViewController

        let task:Tasks = fetchedResultController.objectAtIndexPath(indexPath!) as! Tasks
        taskController.task = task
    }

2 个答案:

答案 0 :(得分:1)

问题出在这一行:let cell = sender as! UITableViewCell。在这种情况下,当用户按下UIBarButtonItem时,似乎正在执行segue。因此,您的发件人为UIBarButtonItem,而不是UITableViewCell。这意味着从senderUIBarButtonItem)到UITableViewCell的强制转换(如!)将导致崩溃。

答案 1 :(得分:0)

我猜你添加了segue而不是单元格。