网上有很多关于该主题的内容,但我不明白。我有一个具有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,然后将按钮的动作拖到“退出”图标上,然后应该选择上面创建的方法作为选择器。 (这直接取自上述问题/答案)。
同样,要获得我所说内容的更清晰版本,请阅读上面提到的链接问题的答案。