【问题标题】:Swift Segue ExceptionSwift Segue 异常
【发布时间】:2018-05-10 12:50:15
【问题描述】:

我对 Segue 有疑问。所有的segues都有一个标识符。

我通过这样写从一种观点转变为另一种观点:

self.performSegue (withIdentifier: "ready", sender: self)

只有当我打开应用程序 5-10 次(总是不同)时,这才有效,应用程序崩溃并显示以下错误消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<MyApp.4ViewController: 0x1180c7000>) has no segue with identifier' select ''

我不明白为什么它不起作用。标识符为“select”的 Segue 仅在 VC 1 和 3 之间,但 VC 3 和 Tabbar Controller (VC 4) 之间的 Segue 具有标识符“ready”。

 func readyToGo()  {
    UserDefaults.standard.setValue(check, forKeyPath: "go")
    UserDefaults.standard.synchronize()
    self.performSegue(withIdentifier: "ready", sender: self)
}

非常感谢

【问题讨论】:

  • 你是否从 VC4 调用了 self.performSegue (withIdentifier: "select", sender: self)?

标签: ios swift segue


【解决方案1】:

从您的日志中,您在名为 4ViewController 且标识符为 select 的 VC 处执行转场检查您的代码,尽管您说它在 1 和 3 之间,但请检查是否将转场从 vc4 转回 vc1 ,可能在 viewDidAppear或者当 VC 4 重写方法时

【讨论】:

  • 我添加了一张图片。已检查所有 Segue 标识符。他们是正确的
  • 你能附上你运行任何名称为 select 的 performSegue 的确切位置吗
  • 天哪!!!你是对的!我的代码中还有一个错误!非常感谢!羞愧于我的头。
猜你喜欢
  • 2016-03-31
  • 1970-01-01
  • 2016-01-05
  • 2016-12-22
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多