【发布时间】:2014-10-03 00:03:18
【问题描述】:
我目前有 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:^{
}];
}
【问题讨论】:
-
按下注销按钮时 - 显示 LoginViewController。您是否关闭了不在屏幕上的视图?
-
@Tander 如果我这样做了,那么会有 4 个 ViewControllers 在彼此之上?我认为这不是最好的解决方案。
-
为什么不使用 UINavigationController?我认为在这种情况下,操作一堆视图控制器比显示和关闭它们更简单
-
@AndreyChernukha 我愿意。但是 UINavigationController 会让我的设计不太好。此外我不想重新设计整个应用程序。
标签: ios objective-c xcode ios7 uiviewcontroller