0

我有两个这样的 UINavigationController:

LoginNavigationController -> LoginView
HomeNavigationController -> HomeView -> ...

从 LoginView 我导航到 HomeView 模态是这样的:

[self presentViewController:HomeNavigationController animated:YES completion:nil];

当应用程序进入后台时,我在 LoginView 中使用一个观察者来关闭 HomeNavigationController。

但是有一种情况,我必须直接呈现 HomeNavigationController,而不要求用户登录。我从另一个故事板执行此操作并重置我的根视图控制器:

AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
UIStoryboard *secondStoryboard = [UIStoryboard storyboardWithName:kStoryMain bundle:nil];
UINavigationController *homeViewController = (UINavigationController *)[secondStoryboard instantiateViewControllerWithIdentifier:kControllerHomeNavigation];
appDelegate.window.rootViewController = homeViewController;
[appDelegate.window makeKeyAndVisible];

但是当应用程序进入后台时,我仍然必须重定向到 LoginView。

有没有办法重定向到 LoginNavigationController,添加观察者并以模态方式呈现 HomeNavigationController,所有这些都可以无缝地为用户发生,而他们不会注意到正在创建登录?如果不是,我应该以某种方式改变我对任务的态度吗?

4

1 回答 1

0

您可以使用这种方法无缝地获得所需的结果,

1)HomeNavigationController作为你的应用程序的根视图控制器。

2)在HomeNavigationControllersay it的第一个视图中HomeViewController,覆盖viewWillAppear并检查是否需要显示登录视图(当用户进入后台或其他内容时,您可以通过将任何标志设置为true来检查)。

3)如果您需要显示LoginNavigationController,将其显示为不带动画的模态,

[self presentViewController: LoginNavigationController animated:NO completion:nil];

如果您发现一些令人困惑的事情,请告诉我。

于 2015-06-08T09:54:15.223 回答