【问题标题】:unexpected segue error found nil发现意外的 segue 错误 nil
【发布时间】:2018-07-14 12:53:12
【问题描述】:

按下主页按钮时出现此错误:线程 1:致命错误:意外的 Segue 标识符;无

这是我的代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    super.prepare(for: segue, sender: sender)

    switch(segue.identifier ?? "")
    {

    case "AddItem":
        os_log("Adding a new day.", log: OSLog.default, type: .debug)

    case "ShowDetail":
        guard let newDayDetailController = segue.destination as? newDayController else {
            fatalError("Unexpected destination: \(segue.destination)")
        }

        guard let selectednewDayCell = sender as? newDayTableViewCell else {
            fatalError("Unexpected sender: \(String(describing: sender))")
        }

        guard let indexPath = tableView.indexPath(for: selectednewDayCell) else {
            fatalError("The selected cell is not being displayed by the table")
        }

        let selectedDay = days[indexPath.row]
        newDayDetailController.day = selectedDay

    case "toMenu":
        os_log("Back to main menu", log: OSLog.default, type: .debug)


    if segue.identifier == "sendData"
    {
        let VC = segue.destination as! HomeViewController

        VC.data = totalDays!

    }

    default:
    fatalError("Unexpected Segue Identifier; \(String(describing: segue.identifier))")
    }
}


//MARK: Actions

@IBAction func menuButton(_ sender: Any) {

    performSegue(withIdentifier: "sendData", sender: self)

}

有人帮帮我吗?

【问题讨论】:

  • 您是否为 Attributes Inspector 中的所有 segue 分配了标识符? nil 表示没有标识符的segue。
  • 与您的问题无关,但您为什么使用 if 来检查标识符 "sendData"。如果那确实是标识符,您将永远无法到达那里。那应该是你的开关的另一种情况。
  • 谢谢我修好了。是的,将其更改为另一种情况

标签: swift segue uistoryboard uistoryboardsegue


【解决方案1】:

确保在情节提要的属性检查器中设置 segue 标识符

显然您的switch 语句属于default 案例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多