网上有很多关于该主题的内容,但我不明白。我有一个具有Custom segue实现且没有Navigation controller的应用程序。在某些情况下,我需要退后几个步骤。

为了实现,我使用简单的调用:

代码自定义设置

对于风:

[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:YES];

放松:

[[self destinationViewController] dismissViewControllerAnimated: YES completion: nil];

据我了解,当我在内存中的某个地方缠绕segue时,在展开时会使用一些数据。因此,在自定义展开中,我仅使用只读属性destinationViewController

那么,如何在一项操作中退回几步呢?还是我必须在不同的View controllers中放松一下?

我阅读了以下question,但是我不理解实现。

在下面,我举了我的应用程序逻辑示例:



我有一个链中的4个VC:
VC A-> VC B-> VC C-> VC D

我来回wind绕。逻辑还可以。在某些情况下,我需要从VC D退回到VCB。该怎么做?我可以直接解压缩到VC B还是必须解压缩到VC C,然后在解卷处理程序中解压缩到VC B?

我还想到了从VC D到VC B的其他segue,但是网上有种说法是不正确的,因为segue链会变得混乱。

最佳答案

What are Unwind segues for and how do you use them?的答案包含有关unwindSegues的所有信息(建议您重新阅读)。

但是,对于更直接的答案,是的,您可以从VC D退回到VCB。为此,您必须首先在VC B中实现该方法:

 - (IBAction)unwindToVCB:(UIStoryboardSegue *)unwindSegue
{
}


这样做之后,转到IB,然后将按钮的动作拖到“退出”图标上,然后应该选择上面创建的方法作为选择器。 (这直接取自上述问题/答案)。

同样,要获得我所说内容的更清晰版本,请阅读上面提到的链接问题的答案。

10-07 19:54
查看更多