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

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

问题描述

我目前有 3 个 ViewController:LoginViewControllerSignUpViewControllerMainViewController.

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 加载时,关闭 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天全站免登陆