【问题标题】:Dismiss view controller from unwind segue从 unwind segue 中关闭视图控制器
【发布时间】:2015-11-13 18:11:34
【问题描述】:

我有 3 个视图控制器。我可以从 A 到 B,然后从 B 到 C。我已经从 B 到 A 进行了展开 segue。当它执行时,我可以看到视图控制器 B 已被释放,并且 VC A 出现在屏幕上。 为此,我在 VC A 中添加了下一个代码,并在 VC B 中的按钮上进行了 unwind segue。

@IBAction func unvindSegueToMenu(segue:UIStoryboardSegue) {}

但是,当我(从 B)转到 VC C 时,我想从 VC C 到 A 执行 unwind Segue。为此,我将下一个代码放入 VC B 类。

@IBAction func unvindSegueToMainMenu(segue:UIStoryboardSegue) {
    self.dismissViewControllerAnimated(false, completion: nil)
}

在我按下 VC C 中的按钮后,它显示了我想要的 VC A,但在分配摘要中我可以看到 VC B 没有被释放。 我的错误是什么,我该如何解除分配?

【问题讨论】:

  • 为什么需要在 B 中加入 "unvindSegueToMenu:" 实现?它应该在A,对吧?

标签: ios swift uiviewcontroller swift2


【解决方案1】:

通常您在代码中犯了一些错误。 我进行了测试,我可以清楚地看到 VC B 在执行 unwind segue 后被释放

首先确保你做对了。 (例如,unwind segue 的执行方法应该在目标 VC 中实现)

您还可以在执行展开后检查您在 navigationController 中有多少 viewController..在您的情况下应该是 2 ,但如果您以正确的方式进行操作,它将只有一个。

【讨论】:

  • 肯定有问题,我将方法移到A,它显示了我想要的VC A,但VC B仍然被分配。
  • 我发现了一个错误。在我的 VC C 中,我使用 SKView 来呈现 SKScene,在我执行 unwind segue 之前,我应该在我的 SKScene 上使用 .removeAllChildren() 方法。
猜你喜欢
  • 2015-02-13
  • 2014-07-17
  • 2020-02-17
  • 2017-09-08
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
相关资源
最近更新 更多