如何从一个故事板切换到另一个故事板

球队,

我有两个故事板。 一个用于身份validation另一个用于我的应用程序仪表板

对于authentication情节提要初始化屏幕是loginScreen。 login成功后,我正在加载仪表板故事板。 对于仪表板故事板,初始屏幕是MainViewController。

我在这里实现了从DashboardStoryboard中注销。 所以现在我想切换回我的身份validation故事板。

这里回到loginScreen。 但是我没有办法实现。 有没有办法让我做得更好?

-(void)logout{ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Authentication" bundle: nil]; LoginViewScreenController *oginViewScreenController = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewScreenController"]; [self.navigationController pushViewController: loginViewScreenController animated:NO]; } 

您的反馈非常感谢。

这是一个诀窍,通过设置一个关键true使用NsuserDefaults当用户login,否则为false并导航你的应用程序时启动相应地使用presentViewController方法没有animation,所以用户将不会得到任何选项回去以前的VC。

看下面代码说明上面的句子:

 if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"isloggedIn"] isEqualToString:@"true"]) { UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"loginView"]; [self presentViewController:vc animated:NO completion:nil]; }else{ // when logout UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"logoutView"]; [self presentViewController:vc animated:NO completion:nil]; } 

如果你需要应用一些效果,当vc出现在presentViewController方法前的这两行看到:

 [vc setModalPresentationStyle:UIModalPresentationCustom]; [vc setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 

注意:当用户注销时将该键设置为false

使用segueStoryboard Reference很容易。 请按照以下步骤和截图进行操作。

步骤1)

  • 从第一个(主)故事板中的对象库拖放Storyboard Reference

第2步)

  • 从您的源ViewController添加segue到Storyboard reference.

步骤-3)

  • select另一个(第二个)故事板。

  • 参考ID:您在Second.Storyboard可用的destinationViewControler(第二个View Controller)的Second.Storyboard


 -(void)logout { UIViewController *aVCObj = [[UIApplication sharedApplication]delegate].window.rootViewController; if ([aVCObj isKindOfClass:[UINavigationController class]]) { UINavigationController *aNavController = (UINavigationController *)aVCObj; [aNavController popToRootViewControllerAnimated:YES]; } }