如何解开segue几步?

时间:2014-11-03 09:41:15

标签: ios objective-c

根据主题,网上有很多东西,但我不明白。我有一个Custom segue实施且没有Navigation controller的应用。在某些情况下,我需要退出几个步骤。

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

CODE CUSTOM SEGUE

风:

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

放松:

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

据我了解,当我在内存中的某个位置segue时,会有一些数据在展开期间使用。出于这个原因,在自定义展开中我只使用只读属性destinationViewController

那么如何在一个动作中解开几个步骤呢?或者我必须在不同的View controllers

中进行几次展开

我阅读了以下question,但我不了解实施情况。

Bellow我把我的应用程序逻辑示例:

示例

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

我来回摆动。逻辑还可以。在某种情况下,我需要从VC D 退回到VC B 。怎么做?我可以直接放松到VC B ,或者我必须放松到VC C ,然后在展开处理程序中放松到VC B

我还想到了从VC D 到VC B 的额外信息,但网上有评论说这不是正确的方法,因为segue链会得到乱。

2 个答案:

答案 0 :(得分:1)

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

但是要获得更直接的答案,是的,您可以从VC D 退回到VC B 。为此,您必须首先在VC B

中实施该方法
 - (IBAction)unwindToVCB:(UIStoryboardSegue *)unwindSegue
{
}

执行此操作后,转到IB,然后按住某个按钮的操作到“退出”图标,然后您应该选择上面创建的方法作为选择器。 (这直接来自上述问题/答案)。

同样,对于我所说的更清晰的版本,请阅读我上面提到的链接问题的答案。

答案 1 :(得分:1)

你必须使用UINavigationController,只需将它作为mainViewController添加到storyboard中,然后设置' A' ViewController作为它的根视图控制器,然后更改所有segue以推送segue,设置' Identifires'对于他们,您可以使用performSegueWithIdentifire推送视图控制器和内部视图控制器:

[self.navigationController popViewControllerAnimated:];

[self.navigationController popToViewController: animated:];

解雇它。