根据主题,网上有很多东西,但我不明白。我有一个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链会得到乱。
答案 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:];
解雇它。