gpt4 book ai didi

ios - 放松 segue 干扰 shoe segue

转载 作者:行者123 更新时间:2023-11-28 06:33:25 25 4
gpt4 key购买 nike

我要实现的目标的背景:

MainViewController 呈现 TableVC。我将点击一个单元格以显示 DetailVC。能够通过 TableVC 或 DetailVC 上导航栏上的 doneBarButton 关闭。

所有 doneBarButton 都 Root 于 MainViewController,所以我认为无论 View Controller 会向 MainViewController 解除什么。

我遇到的是点击 TableVC 的 doneBarButton 而不是 DetailVC 的 doneBarButton 时崩溃。因为它们都通过界面生成器 Root 于 MainViewController,所以我不认为我应该在 TableVC 的 prepareForSegue 方法中编写任何代码,但是标识符的开关案例被突出显示并且调试控制台输出

"fatal error: unexpectedly found nil while unwrapping an Optional value"

我不完全确定在哪里可以确定需要修复的地方,无论是在界面构建器中还是在 prepareForSegue 方法中包含一些东西。

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
switch segue.identifier! // Line highlighted with error in debug console
{
case "toDetailVC": // Properly presents detailVC through a cell being tapped

default:
break
}
}

最佳答案

您尚未为您的unwind segue 分配标识符,因此该属性为nil。由于您使用 ! 强制解包,它会崩溃。

要解决此问题,请在文档大纲 View 中找到unwind segue。选择它,然后在 Attributes Inspector 中,为 segue 指定一个标识符。

Xcode interface showing unwind segue ID


替代解决方案:

由于您可能不关心展开标识符,您还可以通过选择一种更安全的方式来展开 segue.identifier 来解决问题:

switch segue.identifier ?? "" {

使用 nil 合并运算符 ?? 将未分配的标识符替换为空字符串。

关于ios - 放松 segue 干扰 shoe segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com