是否有一种干净的方式来执行segue并“忘记”最后一个ViewController?

时间:2013-08-09 03:57:41

标签: ios storyboard segue

我正在考虑典型的Login-> Register-> App流程。

如果他们去了

Login->Register->App

我希望底层的UINavigationController是

Login->App

我不希望任何后退导航返回注册页面。同样,最好从内存中清除它。

有一种简单的方法吗?或者我是否需要弹出“登录”控制器,然后转到“应用程序”?

2 个答案:

答案 0 :(得分:1)

当然,有一种简单的方法。从Login以模态方式显示Register视图控制器。当你解雇它时,它将被解除分配。如果您想在解雇时直接从注册转到应用程序,请在执行解除之前将导航控制器推送到应用程序(此代码位于注册视图控制器中):

-(IBAction)dismiss:(id)sender {
    UIViewController *app = [self.storyboard instantiateViewControllerWithIdentifier:@"App"];
    [(UINavigationController *)self.presentingViewController pushViewController:app animated:NO];
    [self dismissViewControllerAnimated:YES completion:nil];
}

答案 1 :(得分:0)

我已经实现了像你这样的应用。
你应该在故事板上设计:

1)UINavigationController(设置初始视图控制器或root) - >登录 - >注册和 2)UINavigationController - >主要应用程序

如果登录失败,用户可以注册1)UINavigationController(设置初始视图控制器) - >登录 - >注册

如果登录成功:转发到新的UINavigationController(登录 - >主应用程序)

//launch the main app if login successful, using Storyboad 

        UIStoryboard *mainStoryboard = self.storyboard;
        UIViewController *mainViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainApp"];
        [self.navigationController pushViewController:mainViewController animated:YES];

希望有所帮助!