替换模态视图

时间:2015-09-28 16:22:07

标签: ios objective-c

环境:

我的应用的第一个视图控制器是PostsViewController。在viewDidLoad中,我检查用户是否已登录,如果不是,则以模态方式预设SignupVC。当然可以选择登录而不是注册,我想用登录VC替换注册VC。

我尝试制作一个"显示细节(替换)"从注册到登录VC,但这似乎在注册VC上提供登录模式。它的问题是在用户登录后,我有两个模式要关闭,同时关闭它们似乎很棘手。理想情况下,我想用登录VC替换注册VC,只关闭一个模态。

Q1。 show detail segue在应用于模态视图控制器时如何工作present modally segue?

Q2。如何使用登录View控制器替换SignUp View控制器?

1 个答案:

答案 0 :(得分:3)

正确地重读了你的问题和你的评论之后,很清楚你在这里要做什么。

Q1:因为您只能在显示viewController的父/子视图上显示modally modally。您无法将新viewController推送到modally呈现viewController。为了推送viewController,您需要在视图层次结构中UINavigationController(通常是父/根视图)

Q2:您需要从signupVC以模态方式呈现它。

示例:

//Somewhere in SingupVC
[self presentViewController:LoginVC animated:YES completion:nil];

修改

在评论中回答你的问题:

没有办法同时解雇两个VC。

然而,有几种方法可以做到这一点:

您可以在显示boolean的{​​{1}}上设置SingupVC标记。这样,当LoginVC上调用viewWill/Did appear并且singupVC标记设置为boolean时,您可以调用:YES

这两种风险投资都被解雇了。一个用户通过后退按钮解析[self dismissViewControllerAnimated:NO completion:nil];LoginVC通过其中一个视图生命周期方法(如果loginVCPresent)中的if语句解除视图,事物的类型。