在当前视图控制器中关闭先前的模态视图控制器 [英] Dismiss previous modal view controller in current view controller

查看:75
本文介绍了在当前视图控制器中关闭先前的模态视图控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前有3个ViewControllers: LoginViewController SignUpViewController MainViewController

I currently have 3 ViewControllers: LoginViewController, SignUpViewController and MainViewController.

当用户打开应用程序时,将显示 LoginViewController 。如果用户第一次使用该应用程序,那么他们必须注册,注册按钮位于 LoginViewController 中。 注册按钮将显示 SignUpViewController

When the user opens the app, LoginViewController will be presented. If its the user's first time using the app then they will have to sign up, the "Sign Up" button is in the LoginViewController. The "Sign Up" button will bring up the SignUpViewController.

用户完成注册后。将显示 MainViewController

Once the user finished signing up. The MainViewController will be presented.

我要做的是。在 MainViewController 中会有一个注销按钮。当用户按下它时, MainViewController 应该被解雇, LoginViewController 应该在那里。用户不应该第二次看到 SignUpViewController

What I am trying to do is. In the MainViewController there will be a "Log Out" button. When the user press it the MainViewController should be dismissed and LoginViewController should be there. The user should not see the SignUpViewController for the second time.

这是我试过的:

1)在注册中解除 SignUpViewController 并出现 MainViewController 按钮:

1) Dismiss SignUpViewController and present MainViewController in "sign up" button:

- (void) signUpClicked
{
MainViewController *mainViewController = [viewController.storyboard instantiateViewControllerWithIdentifier:@"MainViewController"];

        [viewController presentViewController:mainViewController animated:YES completion:^{
            [viewController dismissViewControllerAnimated:NO completion:^{

            }];

        }];
}

2)当 MainViewController load,dismiss SignUpViewController

2) When MainViewController loads, dismiss SignUpViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    SignUpViewController *signUpViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SignUpViewController"];
    [signUpViewController dismissViewControllerAnimated:NO completion:^{

    }];

}


推荐答案

搞定了。我将SignUpViewController传递给MainViewController并解除了MainViewController中的SignUpViewController。

Got it. I passed the SignUpViewController to the MainViewController and dismiss the SignUpViewController in the MainViewController.

对于其他与我有同样问题的人。

SignUpViewController.m

- (void) signUpButtonClicked
{
        MainViewController *mainViewController = [viewController.storyboard instantiateViewControllerWithIdentifier:@"MainViewController"];
        mainViewController.signUpViewController = viewController;

        [viewController presentViewController:mainViewController animated:YES completion:^{            
        }];
}

MainViewController.m

- (IBAction)logoutClicked:(id)sender
{

    [self dismissViewControllerAnimated:YES completion:^{

        [self.signUpViewController dismissViewControllerAnimated:NO completion:^{

        }];

    }];
}

这篇关于在当前视图控制器中关闭先前的模态视图控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆