在当前的视图控制器中解散前一个模式的视图控制器[英] Dismiss previous modal view controller in current view controller

本文是小编为大家收集整理的关于在当前的视图控制器中解散前一个模式的视图控制器的处理方法,想解了在当前的视图控制器中解散前一个模式的视图控制器的问题怎么解决?在当前的视图控制器中解散前一个模式的视图控制器问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我目前有 3 个 ViewController:LoginViewController、SignUpViewController 和 MainViewController.

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

用户完成注册后.MainViewController 将被显示.

我想做的是.在 MainViewController 中会有一个"注销"按钮.当用户按下它时, MainViewController 应该被关闭并且 LoginViewController 应该在那里.用户不应第二次看到 SignUpViewController.

这是我尝试过的:

1) 关闭 SignUpViewController 并在"注册"按钮中显示 MainViewController:

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

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

            }];

        }];
}

2) 当 MainViewController 加载时,关闭 SignUpViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

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

    }];

}

推荐答案

知道了.我将 SignUpViewController 传递给 MainViewController 并在 MainViewController 中关闭 SignUpViewController.

对于和我有同样问题的其他人.

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:^{

        }];

    }];
}

本文地址:https://www.itbaoku.cn/post/924382.html