Unwind segues 不适用于模态视图控制器

Posted

技术标签:

【中文标题】Unwind segues 不适用于模态视图控制器【英文标题】:Unwind segues not working with modal view controllers 【发布时间】:2014-04-08 11:41:08 【问题描述】:

我正在开发一个基于故事板的 iPhone 应用程序。 我成功地使用 unwind segues 来导航我的视图控制器堆栈。

但是,当我展示一个模态视图控制器时,我似乎无法触发我在情节提要文件中指定的展开转场。

这是正常现象还是错误?

【问题讨论】:

这可能是正常行为。如果可能,请详细说明更多细节和故事板屏幕截图。 对于模态视图使用dismissviewcontrolleranimated 我使用“dismissviewcontrolleranimated”没有问题。但是,我试图确定为什么 unwind 功能在这种情况下不起作用。我在 Apple 的文档中找不到任何相关内容。 我在模态视图中使用展开转场没有问题。你到底有什么问题? 【参考方案1】:

问题解决了。

显然我在故事板编辑器上遇到了一些问题。 我所做的是删除目标(模态)视图控制器,然后重新创建它。

现在工作正常。 已提交错误报告。

【讨论】:

【参考方案2】:

所以我有同样的问题(两年多后!)。我还没有解决根本问题,但我发现以默认演示样式呈现的模态视图可以展开,但使用页面表演示样式的模式视图根本不起作用。 unwindToViewX 方法在展开转场移动到的父视图控制器上被调用,所以我用下面的代码绕过了这个问题:

if (self.presentedViewController) 
    [self dismissViewControllerAnimated:YES completion:NULL];

这使我无需设置委托系统,因为展开操作正在完成所有繁重的工作,但也避免了可能有一天展开操作可能会起作用的问题,因为在这种情况下self.presentedViewController 应该返回NO因为 unwind 操作正常工作,我们最终不会意外关闭两个视图控制器。

我希望这对同一条船上的其他人有所帮助,但我也想听听其他人是否有更好的解决方案。

【讨论】:

以上是关于Unwind segues 不适用于模态视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

从 Unwind segue 触发时,Push segue 不起作用

Segue 不适用于动态添加的子视图

Unwind Segue 在 iOS 8 中不起作用

为啥我的 unwind segue 回退太远了?

iOS 8 unwind segue 导致方向错误

iOS - 如何在 Unwind Segue 中控制动画类型?