当存在多个ViewControllers / segues时,DismissViewControlers

时间:2014-07-19 21:28:21

标签: objective-c ios7 uiviewcontroller storyboard segue

我有三个ViewController的scenario以下场景 VC2中有一个按钮。

用户已登录案例: 在VC2中单击此按钮将转到VC3,即我从VC2到VC3有一个推送

用户尚未登录案例: 单击按钮,将转到LoginVC(模式segue),在成功登录后,用户将转到VC3((模态segue),然后用户可以单击后退按钮返回VC2。 即,VC2将呈现LoginVC,LoginVC将呈现VC3。

问题1 : 我如何以这种方式解雇VC。根据我解雇VC的知识,父委托方法负责解雇子VC。但是我有一个Vc链形成一个循环。登录成功后,我们从loginVC转到VC3。当从VC3回到VC2时,谁应该解雇VC3?

问题-2 : VC2 - VC3是推送segue。 LogicVC到VC3是模态segue。这是对的吗?

1 个答案:

答案 0 :(得分:0)

我建议你重新考虑一下你的流程。你的LoginVC模态中提出VC3为什么并不合理。相反,如果需要登录,您应该从VC2LoginVC有一个模型 segue,如果登录成功,请关闭此LoginVC,您可以LoginVC[self dismissViewControllerAnimated:YES completion:nil];中自行解雇,并VC3navigation方式呈现VC3

负责解雇孩子VC的并不总是父母。孩子VC可以解雇自己。如果您仍希望以自己的方式取得成功,那么LoginVC应先解雇自己,然后,根据您是否要展示LoginVC,您可以取消{{1}}在完成区。

关于你的问题2,真的没有意义。你问我们你的系统流程应该如何?您可以拥有符合您要求的任何类型的segue。

如果有帮助,请告诉我。