在当前视图控制器中关闭先前的模态视图控制器 [英] Dismiss previous modal view controller in current view controller
问题描述
我目前有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屋!