关闭当前视图控制器中的前一个模态视图控制器 [英] Dismiss previous modal view controller in current view controller
问题描述
我目前有 3 个 ViewController: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
加载时,关闭 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屋!