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 不适用于模态视图控制器的主要内容,如果未能解决你的问题,请参考以下文章