无法以编程方式执行 unwind segue

Posted

技术标签:

【中文标题】无法以编程方式执行 unwind segue【英文标题】:Cant perform unwind segue programmatically 【发布时间】:2013-08-17 21:18:11 【问题描述】:

我试图从其内容视图中消除弹出框,并且我知道展开segues 是执行此操作的正确方法,并且当我通过将按钮连接到退出图标来使用情节提要创建展开动作时,它工作得非常好。

但我坚持以编程方式执行相同的操作。

这是我的故事板层次结构:

[导航控制器] v [主视图控制器] v (弹出框转场) v [“B”标签栏控制器] v [导航控制器] v [“C”视图控制器]

所以。我的“C”视图控制器中有一个表格视图,通过点击它的单元格 - 我想做一些代码,然后将所有这些内容展开到第一个主视图控制器。

简单但不正确的方法是向主视图控制器发送通知并在那里关闭弹出框控制器。或者通过委托或类似的方式。

但我想了解在这种情况下如何使用“popTo”方法。

简单

[self.navigationController popToViewController:[AppModel sharedInstance].mainViewController animated:YES];

只是使应用程序崩溃并出现错误“试图弹出到一个不存在的视图控制器。”

我对此感到困惑

【问题讨论】:

在我对另一个问题的回答中,我将介绍创建您以编程方式调用的展开 segue 的过程:***.com/a/17607083/1271826 谢谢。这正是我想要的。 【参考方案1】:

您创建了带有序列的弹出框,因此如果您有想要放松的参考:

- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue


有时最好以编程方式创建弹出框,因为它们更容易消除...看看我不久前写的一些代码:

 [myPopoverController dismissPopoverAnimated:YES];

【讨论】:

以上是关于无法以编程方式执行 unwind segue的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式执行Unwind segue?

在单元测试中以编程方式执行 Unwind Segue

在 unwind segue 之后执行 push segue

Swift 以编程方式创建一个 unwind segue

无法以编程方式执行 segue

无法在选择搜索结果时执行 unwind segue - 导航堆栈将不会更新